Compare commits

..

10 Commits

Author SHA1 Message Date
3b9ce88b1e 初始化上传 2025-08-21 09:46:48 +08:00
jishenghua
d4bb4484e5 给商品编辑界面的扩展字段增加输入框提示字符 2025-04-03 22:24:46 +08:00
季圣华
41bc4fef5f
update README.md.
Signed-off-by: 季圣华 <752718920@qq.com>
2025-04-03 08:38:31 +00:00
jishenghua
6a2f2d1425 解决超管菜单获取的bug 2025-04-02 14:59:17 +08:00
jishenghua
c1de4c53e2 优化角色的功能权限的分配逻辑 2025-04-02 12:12:12 +08:00
jishenghua
509b93dc44 更新版本tip 2025-04-01 23:22:22 +08:00
季圣华
581948cd42
update README.md.
Signed-off-by: 季圣华 <752718920@qq.com>
2025-04-01 15:12:14 +00:00
jishenghua
ecd62dcfb0 解决采购入库统计的计算bug 2025-04-01 15:54:01 +08:00
jishenghua
3f3fb59059 解决商品录入界面,扩展信息不显示标题的bug 2025-04-01 09:55:47 +08:00
jishenghua
0a9914e700 解决登录之后获取不到全部商品属性的bug 2025-03-31 22:34:16 +08:00
38 changed files with 61730 additions and 279 deletions

View File

@ -2,9 +2,10 @@
* 很多人说管伊佳ERP原名华夏ERP英文名jshERP是目前人气领先的国产ERP系统
* 虽然目前只有进销存+财务+生产的功能但后面将会推出ERP的全部功能有兴趣请帮点一下 **Star**
* **官网地址http://www.gyjerp.com 商务或技术交流请联系QQ752718920 微信shenhua861584**
* 官方抖音号604725414 关注满1000人直播写开源代码大家抓紧关注
# 网络版介绍
* 推荐使用网络版158元1年淘宝链接https://item.taobao.com/item.htm?id=674169489573
* 推荐使用网络版198元1年淘宝链接https://item.taobao.com/item.htm?id=674169489573
* 平台地址http://cloud.gyjerp.com 欢迎大家注册租户进行使用
* 网络版手机端请扫描下方二维码

View File

@ -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

View File

@ -0,0 +1,37 @@
server.port=9999
#登录超时-秒
server.servlet.session.timeout=36000
#服务路径
server.servlet.context-path=/jshERP-boot
#数据库连接
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jsh_erp?useUnicode=true&characterEncoding=utf8&useCursorFetch=true&defaultFetchSize=500&allowMultiQueries=true&rewriteBatchedStatements=true&useSSL=false
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=AWS2025aws!
#mybatis-plus配置
mybatis-plus.mapper-locations=classpath:./mapper_xml/*.xml
# Redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
#租户对应的角色id
manage.roleId=10
#租户允许创建的用户数
tenant.userNumLimit=1000000
#租户允许试用的天数
tenant.tryDayLimit=3000
#插件配置
plugin.runMode=prod
plugin.pluginPath=plugins
plugin.pluginConfigFilePath=pluginConfig
#文件上传方式 1-本机 2-oss
file.uploadType=1
#文件上传根目录
file.path=/opt/jshERP/upload
#文件上传临时路径
server.tomcat.basedir=/opt/tmp/tomcat
#文件上传限制(byte)
spring.servlet.multipart.max-file-size=10485760
spring.servlet.multipart.max-request-size=10485760
#bpm接口地址
awspaas.bpm.url=http://127.0.0.1:8088/api

View File

@ -0,0 +1,34 @@
<configuration>
<property name="LOG_FILE" value="${logs.home}/jshERP"/>
<property name="LOG_PATTERN" value="%d{yyyy/MM/dd-HH:mm:ss} %-5level [%thread] %logger - %msg%n"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="TIME_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}.log</file>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxHistory>10</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<root level="ERROR">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="TIME_FILE"/>
</root>
<logger name="com.jsh" additivity="false" level="DEBUG">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="TIME_FILE"/>
</logger>
</configuration>

977
jshERP-boot/dist/jshERP/docs/jsh_erp.sql vendored Normal file
View File

@ -0,0 +1,977 @@
/*
Navicat MySQL Data Transfer
Source Server : 127.0.0.1
Source Server Version : 50704
Source Host : 127.0.0.1:3306
Source Database : jsh_erp
Target Server Type : MYSQL
Target Server Version : 50704
File Encoding : 65001
Date: 2025-03-25 23:43:27
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for jsh_account
-- ----------------------------
DROP TABLE IF EXISTS `jsh_account`;
CREATE TABLE `jsh_account` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(50) DEFAULT NULL COMMENT '名称',
`serial_no` varchar(50) DEFAULT NULL COMMENT '编号',
`initial_amount` decimal(24,6) DEFAULT NULL COMMENT '期初金额',
`current_amount` decimal(24,6) DEFAULT NULL COMMENT '当前余额',
`remark` varchar(100) DEFAULT NULL COMMENT '备注',
`enabled` bit(1) DEFAULT NULL COMMENT '启用',
`sort` varchar(10) DEFAULT NULL COMMENT '排序',
`is_default` bit(1) DEFAULT NULL COMMENT '是否默认',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8 COMMENT='账户信息';
-- ----------------------------
-- Records of jsh_account
-- ----------------------------
INSERT INTO `jsh_account` VALUES ('17', '账户1', 'zzz111', '100.000000', '829.000000', 'aabb', '', null, '', '63', '0');
INSERT INTO `jsh_account` VALUES ('18', '账户2', '1234131324', '200.000000', '-1681.000000', 'bbbb', '', null, '\0', '63', '0');
-- ----------------------------
-- Table structure for jsh_account_head
-- ----------------------------
DROP TABLE IF EXISTS `jsh_account_head`;
CREATE TABLE `jsh_account_head` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`type` varchar(50) DEFAULT NULL COMMENT '类型(支出/收入/收款/付款/转账)',
`organ_id` bigint(20) DEFAULT NULL COMMENT '单位Id(收款/付款单位)',
`hands_person_id` bigint(20) DEFAULT NULL COMMENT '经手人id',
`creator` bigint(20) DEFAULT NULL COMMENT '操作员',
`change_amount` decimal(24,6) DEFAULT NULL COMMENT '变动金额(优惠/收款/付款/实付)',
`discount_money` decimal(24,6) DEFAULT NULL COMMENT '优惠金额',
`total_price` decimal(24,6) DEFAULT NULL COMMENT '合计金额',
`account_id` bigint(20) DEFAULT NULL COMMENT '账户(收款/付款)',
`bill_no` varchar(50) DEFAULT NULL COMMENT '单据编号',
`bill_time` datetime DEFAULT NULL COMMENT '单据日期',
`remark` varchar(1000) DEFAULT NULL COMMENT '备注',
`file_name` varchar(500) DEFAULT NULL COMMENT '附件名称',
`status` varchar(1) DEFAULT NULL COMMENT '状态0未审核、1已审核、9审核中',
`source` varchar(1) DEFAULT '0' COMMENT '单据来源0-pc1-手机',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`),
KEY `FK9F4C0D8DB610FC06` (`organ_id`),
KEY `FK9F4C0D8DAAE50527` (`account_id`),
KEY `FK9F4C0D8DC4170B37` (`hands_person_id`)
) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=utf8 COMMENT='财务主表';
-- ----------------------------
-- Records of jsh_account_head
-- ----------------------------
-- ----------------------------
-- Table structure for jsh_account_item
-- ----------------------------
DROP TABLE IF EXISTS `jsh_account_item`;
CREATE TABLE `jsh_account_item` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`header_id` bigint(20) NOT NULL COMMENT '表头Id',
`account_id` bigint(20) DEFAULT NULL COMMENT '账户Id',
`in_out_item_id` bigint(20) DEFAULT NULL COMMENT '收支项目Id',
`bill_id` bigint(20) DEFAULT NULL COMMENT '单据id',
`need_debt` decimal(24,6) DEFAULT NULL COMMENT '应收欠款',
`finish_debt` decimal(24,6) DEFAULT NULL COMMENT '已收欠款',
`each_amount` decimal(24,6) DEFAULT NULL COMMENT '单项金额',
`remark` varchar(500) DEFAULT NULL COMMENT '单据备注',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`),
KEY `FK9F4CBAC0AAE50527` (`account_id`),
KEY `FK9F4CBAC0C5FE6007` (`header_id`),
KEY `FK9F4CBAC0D203EDC5` (`in_out_item_id`)
) ENGINE=InnoDB AUTO_INCREMENT=152 DEFAULT CHARSET=utf8 COMMENT='财务子表';
-- ----------------------------
-- Records of jsh_account_item
-- ----------------------------
-- ----------------------------
-- Table structure for jsh_depot
-- ----------------------------
DROP TABLE IF EXISTS `jsh_depot`;
CREATE TABLE `jsh_depot` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(20) DEFAULT NULL COMMENT '仓库名称',
`address` varchar(50) DEFAULT NULL COMMENT '仓库地址',
`warehousing` decimal(24,6) DEFAULT NULL COMMENT '仓储费',
`truckage` decimal(24,6) DEFAULT NULL COMMENT '搬运费',
`type` int(10) DEFAULT NULL COMMENT '类型',
`sort` varchar(10) DEFAULT NULL COMMENT '排序',
`remark` varchar(100) DEFAULT NULL COMMENT '描述',
`principal` bigint(20) DEFAULT NULL COMMENT '负责人',
`enabled` bit(1) DEFAULT NULL COMMENT '启用',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_Flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
`is_default` bit(1) DEFAULT NULL COMMENT '是否默认',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='仓库表';
-- ----------------------------
-- Records of jsh_depot
-- ----------------------------
INSERT INTO `jsh_depot` VALUES ('14', '仓库1', 'dizhi', '12.000000', '12.000000', '0', '1', '描述', '131', '', '63', '0', '');
INSERT INTO `jsh_depot` VALUES ('15', '仓库2', '地址100', '555.000000', '666.000000', '0', '2', 'dfdf', '131', '', '63', '0', '\0');
INSERT INTO `jsh_depot` VALUES ('17', '仓库3', '123123', '123.000000', '123.000000', '0', '3', '123', '131', '', '63', '0', '\0');
-- ----------------------------
-- Table structure for jsh_depot_head
-- ----------------------------
DROP TABLE IF EXISTS `jsh_depot_head`;
CREATE TABLE `jsh_depot_head` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`type` varchar(50) DEFAULT NULL COMMENT '类型(出库/入库)',
`sub_type` varchar(50) DEFAULT NULL COMMENT '出入库分类',
`default_number` varchar(50) DEFAULT NULL COMMENT '初始票据号',
`number` varchar(50) DEFAULT NULL COMMENT '票据号',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`oper_time` datetime DEFAULT NULL COMMENT '出入库时间',
`organ_id` bigint(20) DEFAULT NULL COMMENT '供应商id',
`creator` bigint(20) DEFAULT NULL COMMENT '操作员',
`account_id` bigint(20) DEFAULT NULL COMMENT '账户id',
`change_amount` decimal(24,6) DEFAULT NULL COMMENT '变动金额(收款/付款)',
`back_amount` decimal(24,6) DEFAULT NULL COMMENT '找零金额',
`total_price` decimal(24,6) DEFAULT NULL COMMENT '合计金额',
`pay_type` varchar(50) DEFAULT NULL COMMENT '付款类型(现金、记账等)',
`bill_type` varchar(50) DEFAULT NULL COMMENT '单据类型',
`remark` varchar(1000) DEFAULT NULL COMMENT '备注',
`file_name` varchar(1000) DEFAULT NULL COMMENT '附件名称',
`sales_man` varchar(50) DEFAULT NULL COMMENT '销售员(可以多个)',
`account_id_list` varchar(50) DEFAULT NULL COMMENT '多账户ID列表',
`account_money_list` varchar(200) DEFAULT NULL COMMENT '多账户金额列表',
`discount` decimal(24,6) DEFAULT NULL COMMENT '优惠率',
`discount_money` decimal(24,6) DEFAULT NULL COMMENT '优惠金额',
`discount_last_money` decimal(24,6) DEFAULT NULL COMMENT '优惠后金额',
`other_money` decimal(24,6) DEFAULT NULL COMMENT '销售或采购费用合计',
`deposit` decimal(24,6) DEFAULT NULL COMMENT '订金',
`status` varchar(1) DEFAULT NULL COMMENT '状态0未审核、1已审核、2完成采购|销售、3部分采购|销售、9审核中',
`purchase_status` varchar(1) DEFAULT NULL COMMENT '采购状态0未采购、2完成采购、3部分采购',
`source` varchar(1) DEFAULT '0' COMMENT '单据来源0-pc1-手机',
`link_number` varchar(50) DEFAULT NULL COMMENT '关联订单号',
`link_apply` varchar(50) DEFAULT NULL COMMENT '关联请购单',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`),
KEY `FK2A80F214B610FC06` (`organ_id`),
KEY `FK2A80F214AAE50527` (`account_id`)
) ENGINE=InnoDB AUTO_INCREMENT=277 DEFAULT CHARSET=utf8 COMMENT='单据主表';
-- ----------------------------
-- Records of jsh_depot_head
-- ----------------------------
-- ----------------------------
-- Table structure for jsh_depot_item
-- ----------------------------
DROP TABLE IF EXISTS `jsh_depot_item`;
CREATE TABLE `jsh_depot_item` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`header_id` bigint(20) NOT NULL COMMENT '表头Id',
`material_id` bigint(20) NOT NULL COMMENT '商品Id',
`material_extend_id` bigint(20) DEFAULT NULL COMMENT '商品扩展id',
`material_unit` varchar(20) DEFAULT NULL COMMENT '商品单位',
`sku` varchar(50) DEFAULT NULL COMMENT '多属性',
`oper_number` decimal(24,6) DEFAULT NULL COMMENT '数量',
`basic_number` decimal(24,6) DEFAULT NULL COMMENT '基础数量如kg、瓶',
`unit_price` decimal(24,6) DEFAULT NULL COMMENT '单价',
`purchase_unit_price` decimal(24,6) DEFAULT NULL COMMENT '采购单价',
`tax_unit_price` decimal(24,6) DEFAULT NULL COMMENT '含税单价',
`all_price` decimal(24,6) DEFAULT NULL COMMENT '金额',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`depot_id` bigint(20) DEFAULT NULL COMMENT '仓库ID',
`another_depot_id` bigint(20) DEFAULT NULL COMMENT '调拨时对方仓库Id',
`tax_rate` decimal(24,6) DEFAULT NULL COMMENT '税率',
`tax_money` decimal(24,6) DEFAULT NULL COMMENT '税额',
`tax_last_money` decimal(24,6) DEFAULT NULL COMMENT '价税合计',
`material_type` varchar(20) DEFAULT NULL COMMENT '商品类型',
`sn_list` varchar(2000) DEFAULT NULL COMMENT '序列号列表',
`batch_number` varchar(100) DEFAULT NULL COMMENT '批号',
`expiration_date` datetime DEFAULT NULL COMMENT '有效日期',
`link_id` bigint(20) DEFAULT NULL COMMENT '关联明细id',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`),
KEY `FK2A819F475D61CCF7` (`material_id`),
KEY `FK2A819F474BB6190E` (`header_id`),
KEY `FK2A819F479485B3F5` (`depot_id`),
KEY `FK2A819F47729F5392` (`another_depot_id`)
) ENGINE=InnoDB AUTO_INCREMENT=334 DEFAULT CHARSET=utf8 COMMENT='单据子表';
-- ----------------------------
-- Records of jsh_depot_item
-- ----------------------------
-- ----------------------------
-- Table structure for jsh_function
-- ----------------------------
DROP TABLE IF EXISTS `jsh_function`;
CREATE TABLE `jsh_function` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`number` varchar(50) DEFAULT NULL COMMENT '编号',
`name` varchar(50) DEFAULT NULL COMMENT '名称',
`parent_number` varchar(50) DEFAULT NULL COMMENT '上级编号',
`url` varchar(100) DEFAULT NULL COMMENT '链接',
`component` varchar(100) DEFAULT NULL COMMENT '组件',
`state` bit(1) DEFAULT NULL COMMENT '收缩',
`sort` varchar(50) DEFAULT NULL COMMENT '排序',
`enabled` bit(1) DEFAULT NULL COMMENT '启用',
`type` varchar(50) DEFAULT NULL COMMENT '类型',
`push_btn` varchar(50) DEFAULT NULL COMMENT '功能按钮',
`icon` varchar(50) DEFAULT NULL COMMENT '图标',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`)
) ENGINE=InnoDB AUTO_INCREMENT=262 DEFAULT CHARSET=utf8 COMMENT='功能模块表';
-- ----------------------------
-- Records of jsh_function
-- ----------------------------
INSERT INTO `jsh_function` VALUES ('1', '0001', '系统管理', '0', '/system', '/layouts/TabLayout', '', '0910', '', '电脑版', '', 'setting', '0');
INSERT INTO `jsh_function` VALUES ('13', '000102', '角色管理', '0001', '/system/role', '/system/RoleList', '\0', '0130', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('14', '000103', '用户管理', '0001', '/system/user', '/system/UserList', '\0', '0140', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('15', '000104', '日志管理', '0001', '/system/log', '/system/LogList', '\0', '0160', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('16', '000105', '功能管理', '0001', '/system/function', '/system/FunctionList', '\0', '0166', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('18', '000109', '租户管理', '0001', '/system/tenant', '/system/TenantList', '\0', '0167', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('21', '0101', '商品管理', '0', '/material', '/layouts/TabLayout', '\0', '0620', '', '电脑版', null, 'shopping', '0');
INSERT INTO `jsh_function` VALUES ('22', '010101', '商品类别', '0101', '/material/material_category', '/material/MaterialCategoryList', '\0', '0230', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('23', '010102', '商品信息', '0101', '/material/material', '/material/MaterialList', '\0', '0240', '', '电脑版', '1,3', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('24', '0102', '基本资料', '0', '/systemA', '/layouts/TabLayout', '\0', '0750', '', '电脑版', null, 'appstore', '0');
INSERT INTO `jsh_function` VALUES ('25', '01020101', '供应商信息', '0102', '/system/vendor', '/system/VendorList', '\0', '0260', '', '电脑版', '1,3', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('26', '010202', '仓库信息', '0102', '/system/depot', '/system/DepotList', '\0', '0270', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('31', '010206', '经手人管理', '0102', '/system/person', '/system/PersonList', '\0', '0284', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('32', '0502', '采购管理', '0', '/bill', '/layouts/TabLayout', '\0', '0330', '', '电脑版', '', 'retweet', '0');
INSERT INTO `jsh_function` VALUES ('33', '050201', '采购入库', '0502', '/bill/purchase_in', '/bill/PurchaseInList', '\0', '0340', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('38', '0603', '销售管理', '0', '/billB', '/layouts/TabLayout', '\0', '0390', '', '电脑版', '', 'shopping-cart', '0');
INSERT INTO `jsh_function` VALUES ('40', '080107', '调拨出库', '0801', '/bill/allocation_out', '/bill/AllocationOutList', '\0', '0807', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('41', '060303', '销售出库', '0603', '/bill/sale_out', '/bill/SaleOutList', '\0', '0394', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('44', '0704', '财务管理', '0', '/financial', '/layouts/TabLayout', '\0', '0450', '', '电脑版', '', 'money-collect', '0');
INSERT INTO `jsh_function` VALUES ('59', '030101', '进销存统计', '0301', '/report/in_out_stock_report', '/report/InOutStockReport', '\0', '0658', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('194', '010204', '收支项目', '0102', '/system/in_out_item', '/system/InOutItemList', '\0', '0282', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('195', '010205', '结算账户', '0102', '/system/account', '/system/AccountList', '\0', '0283', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('197', '070402', '收入单', '0704', '/financial/item_in', '/financial/ItemInList', '\0', '0465', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('198', '0301', '报表查询', '0', '/report', '/layouts/TabLayout', '\0', '0570', '', '电脑版', null, 'pie-chart', '0');
INSERT INTO `jsh_function` VALUES ('199', '050204', '采购退货', '0502', '/bill/purchase_back', '/bill/PurchaseBackList', '\0', '0345', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('200', '060305', '销售退货', '0603', '/bill/sale_back', '/bill/SaleBackList', '\0', '0396', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('201', '080103', '其它入库', '0801', '/bill/other_in', '/bill/OtherInList', '\0', '0803', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('202', '080105', '其它出库', '0801', '/bill/other_out', '/bill/OtherOutList', '\0', '0805', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('203', '070403', '支出单', '0704', '/financial/item_out', '/financial/ItemOutList', '\0', '0470', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('204', '070404', '收款单', '0704', '/financial/money_in', '/financial/MoneyInList', '\0', '0475', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('205', '070405', '付款单', '0704', '/financial/money_out', '/financial/MoneyOutList', '\0', '0480', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('206', '070406', '转账单', '0704', '/financial/giro', '/financial/GiroList', '\0', '0490', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('207', '030102', '账户统计', '0301', '/report/account_report', '/report/AccountReport', '\0', '0610', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('208', '030103', '采购统计', '0301', '/report/buy_in_report', '/report/BuyInReport', '\0', '0620', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('209', '030104', '销售统计', '0301', '/report/sale_out_report', '/report/SaleOutReport', '\0', '0630', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('210', '040102', '零售出库', '0401', '/bill/retail_out', '/bill/RetailOutList', '\0', '0405', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('211', '040104', '零售退货', '0401', '/bill/retail_back', '/bill/RetailBackList', '\0', '0407', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('212', '070407', '收预付款', '0704', '/financial/advance_in', '/financial/AdvanceInList', '\0', '0495', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('217', '01020102', '客户信息', '0102', '/system/customer', '/system/CustomerList', '\0', '0262', '', '电脑版', '1,3', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('218', '01020103', '会员信息', '0102', '/system/member', '/system/MemberList', '\0', '0263', '', '电脑版', '1,3', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('220', '010103', '多单位', '0101', '/system/unit', '/system/UnitList', '\0', '0245', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('225', '0401', '零售管理', '0', '/billC', '/layouts/TabLayout', '\0', '0101', '', '电脑版', '', 'gift', '0');
INSERT INTO `jsh_function` VALUES ('226', '030106', '入库明细', '0301', '/report/in_detail', '/report/InDetail', '\0', '0640', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('227', '030107', '出库明细', '0301', '/report/out_detail', '/report/OutDetail', '\0', '0645', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('228', '030108', '入库汇总', '0301', '/report/in_material_count', '/report/InMaterialCount', '\0', '0650', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('229', '030109', '出库汇总', '0301', '/report/out_material_count', '/report/OutMaterialCount', '\0', '0655', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('232', '080109', '组装单', '0801', '/bill/assemble', '/bill/AssembleList', '\0', '0809', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('233', '080111', '拆卸单', '0801', '/bill/disassemble', '/bill/DisassembleList', '\0', '0811', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('234', '000105', '系统配置', '0001', '/system/system_config', '/system/SystemConfigList', '\0', '0164', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('235', '030110', '客户对账', '0301', '/report/customer_account', '/report/CustomerAccount', '\0', '0660', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('236', '000106', '商品属性', '0001', '/material/material_property', '/material/MaterialPropertyList', '\0', '0165', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('237', '030111', '供应商对账', '0301', '/report/vendor_account', '/report/VendorAccount', '\0', '0665', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('239', '0801', '仓库管理', '0', '/billD', '/layouts/TabLayout', '\0', '0420', '', '电脑版', '', 'hdd', '0');
INSERT INTO `jsh_function` VALUES ('241', '050202', '采购订单', '0502', '/bill/purchase_order', '/bill/PurchaseOrderList', '\0', '0335', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('242', '060301', '销售订单', '0603', '/bill/sale_order', '/bill/SaleOrderList', '\0', '0392', '', '电脑版', '1,2,3,7', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('243', '000108', '机构管理', '0001', '/system/organization', '/system/OrganizationList', '', '0150', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('244', '030112', '库存预警', '0301', '/report/stock_warning_report', '/report/StockWarningReport', '\0', '0670', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('245', '000107', '插件管理', '0001', '/system/plugin', '/system/PluginList', '\0', '0170', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('246', '030113', '商品库存', '0301', '/report/material_stock', '/report/MaterialStock', '\0', '0605', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('247', '010105', '多属性', '0101', '/material/material_attribute', '/material/MaterialAttributeList', '\0', '0250', '', '电脑版', '1', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('248', '030150', '调拨明细', '0301', '/report/allocation_detail', '/report/AllocationDetail', '\0', '0646', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('258', '000112', '平台配置', '0001', '/system/platform_config', '/system/PlatformConfigList', '\0', '0175', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('259', '030105', '零售统计', '0301', '/report/retail_out_report', '/report/RetailOutReport', '\0', '0615', '', '电脑版', '', 'profile', '0');
INSERT INTO `jsh_function` VALUES ('261', '050203', '请购单', '0502', '/bill/purchase_apply', '/bill/PurchaseApplyList', '\0', '0330', '', '电脑版', '1,2,3,7', 'profile', '0');
-- ----------------------------
-- Table structure for jsh_in_out_item
-- ----------------------------
DROP TABLE IF EXISTS `jsh_in_out_item`;
CREATE TABLE `jsh_in_out_item` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(50) DEFAULT NULL COMMENT '名称',
`type` varchar(20) DEFAULT NULL COMMENT '类型',
`remark` varchar(100) DEFAULT NULL COMMENT '备注',
`enabled` bit(1) DEFAULT NULL COMMENT '启用',
`sort` varchar(10) DEFAULT NULL COMMENT '排序',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COMMENT='收支项目';
-- ----------------------------
-- Records of jsh_in_out_item
-- ----------------------------
INSERT INTO `jsh_in_out_item` VALUES ('21', '快递费', '支出', '', '', null, '63', '0');
INSERT INTO `jsh_in_out_item` VALUES ('22', '房租收入', '收入', '', '', null, '63', '0');
INSERT INTO `jsh_in_out_item` VALUES ('23', '利息收入', '收入', '收入', '', null, '63', '0');
-- ----------------------------
-- Table structure for jsh_log
-- ----------------------------
DROP TABLE IF EXISTS `jsh_log`;
CREATE TABLE `jsh_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_id` bigint(20) DEFAULT NULL COMMENT '用户id',
`operation` varchar(500) DEFAULT NULL COMMENT '操作模块名称',
`client_ip` varchar(200) DEFAULT NULL COMMENT '客户端IP',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`status` tinyint(4) DEFAULT NULL COMMENT '操作状态 0==成功1==失败',
`content` varchar(5000) DEFAULT NULL COMMENT '详情',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`),
KEY `FKF2696AA13E226853` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7605 DEFAULT CHARSET=utf8 COMMENT='操作日志';
-- ----------------------------
-- Records of jsh_log
-- ----------------------------
-- ----------------------------
-- Table structure for jsh_material
-- ----------------------------
DROP TABLE IF EXISTS `jsh_material`;
CREATE TABLE `jsh_material` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`category_id` bigint(20) DEFAULT NULL COMMENT '产品类型id',
`name` varchar(100) DEFAULT NULL COMMENT '名称',
`mfrs` varchar(50) DEFAULT NULL COMMENT '制造商',
`model` varchar(100) DEFAULT NULL COMMENT '型号',
`standard` varchar(100) DEFAULT NULL COMMENT '规格',
`brand` varchar(100) DEFAULT NULL COMMENT '品牌',
`mnemonic` varchar(100) DEFAULT NULL COMMENT '助记码',
`color` varchar(50) DEFAULT NULL COMMENT '颜色',
`unit` varchar(50) DEFAULT NULL COMMENT '单位-单个',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`img_name` varchar(1000) DEFAULT NULL COMMENT '图片名称',
`unit_id` bigint(20) DEFAULT NULL COMMENT '单位Id',
`expiry_num` int(10) DEFAULT NULL COMMENT '保质期天数',
`weight` decimal(24,6) DEFAULT NULL COMMENT '基础重量(kg)',
`enabled` bit(1) DEFAULT NULL COMMENT '启用 0-禁用 1-启用',
`other_field1` varchar(50) DEFAULT NULL COMMENT '自定义1',
`other_field2` varchar(50) DEFAULT NULL COMMENT '自定义2',
`other_field3` varchar(50) DEFAULT NULL COMMENT '自定义3',
`enable_serial_number` varchar(1) DEFAULT '0' COMMENT '是否开启序列号0否1是',
`enable_batch_number` varchar(1) DEFAULT '0' COMMENT '是否开启批号0否1是',
`position` varchar(100) DEFAULT NULL COMMENT '仓位货架',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`),
KEY `FK675951272AB6672C` (`category_id`),
KEY `UnitId` (`unit_id`)
) ENGINE=InnoDB AUTO_INCREMENT=620 DEFAULT CHARSET=utf8 COMMENT='产品表';
-- ----------------------------
-- Records of jsh_material
-- ----------------------------
INSERT INTO `jsh_material` VALUES ('568', '17', '商品1', '制1', 'sp1', '', null, null, '', '', '', null, null, null, null, '', '', '', '', '0', '0', null, '63', '0');
INSERT INTO `jsh_material` VALUES ('569', '17', '商品2', '', 'sp2', '', null, null, '', '', '', null, null, null, null, '', '', '', '', '0', '0', null, '63', '0');
INSERT INTO `jsh_material` VALUES ('570', '17', '商品3', '', 'sp3', '', null, null, '', '', '', null, null, null, null, '', '', '', '', '0', '0', null, '63', '0');
INSERT INTO `jsh_material` VALUES ('577', null, '商品8', '', 'sp8', '', null, null, '', '', '', null, '15', null, null, '', '', '', '', '0', '0', null, '63', '0');
INSERT INTO `jsh_material` VALUES ('579', '21', '商品17', '', 'sp17', '', null, null, '', '', '', null, '15', null, null, '', '', '', '', '0', '0', null, '63', '0');
INSERT INTO `jsh_material` VALUES ('586', '17', '序列号商品测试', '', 'xlh123', '', null, null, '', '', '', null, null, null, null, '', '', '', '', '1', '0', null, '63', '0');
INSERT INTO `jsh_material` VALUES ('587', '17', '商品test1', '南通中远', '', 'test1', null, null, '', '', '', null, null, null, null, '', '', '', '', '0', '0', null, '63', '0');
INSERT INTO `jsh_material` VALUES ('588', '21', '商品200', 'fafda', 'weqwe', '300ml', null, null, '红色', '', 'aaaabbbbb', null, null, null, null, '', '', '', '', '0', '0', null, '63', '0');
INSERT INTO `jsh_material` VALUES ('619', null, '衣服', null, null, null, null, null, null, '', null, '', null, null, null, '', null, null, null, '0', '0', null, '63', '0');
-- ----------------------------
-- Table structure for jsh_material_attribute
-- ----------------------------
DROP TABLE IF EXISTS `jsh_material_attribute`;
CREATE TABLE `jsh_material_attribute` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`attribute_name` varchar(50) DEFAULT NULL COMMENT '属性名',
`attribute_value` varchar(500) DEFAULT NULL COMMENT '属性值',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='产品属性表';
-- ----------------------------
-- Records of jsh_material_attribute
-- ----------------------------
INSERT INTO `jsh_material_attribute` VALUES ('1', '多颜色', '红色|橙色|黄色|绿色|蓝色|紫色', '63', '0');
INSERT INTO `jsh_material_attribute` VALUES ('2', '多尺寸', 'S|M|L|XL|XXL|XXXL', '63', '0');
INSERT INTO `jsh_material_attribute` VALUES ('3', '自定义1', '小米|华为', '63', '0');
INSERT INTO `jsh_material_attribute` VALUES ('4', '自定义2', null, '63', '0');
INSERT INTO `jsh_material_attribute` VALUES ('5', '自定义3', null, '63', '0');
-- ----------------------------
-- Table structure for jsh_material_category
-- ----------------------------
DROP TABLE IF EXISTS `jsh_material_category`;
CREATE TABLE `jsh_material_category` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(50) DEFAULT NULL COMMENT '名称',
`category_level` smallint(6) DEFAULT NULL COMMENT '等级',
`parent_id` bigint(20) DEFAULT NULL COMMENT '上级id',
`sort` varchar(10) DEFAULT NULL COMMENT '显示顺序',
`serial_no` varchar(100) DEFAULT NULL COMMENT '编号',
`remark` varchar(1024) DEFAULT NULL COMMENT '备注',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`),
KEY `FK3EE7F725237A77D8` (`parent_id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COMMENT='产品类型表';
-- ----------------------------
-- Records of jsh_material_category
-- ----------------------------
INSERT INTO `jsh_material_category` VALUES ('17', '目录1', null, null, '11', 'wae12', 'eee', '2019-04-10 22:18:12', '2021-02-17 15:11:35', '63', '0');
INSERT INTO `jsh_material_category` VALUES ('21', '目录2', null, '17', '22', 'ada112', 'ddd', '2020-07-20 23:08:44', '2020-07-20 23:08:44', '63', '0');
-- ----------------------------
-- Table structure for jsh_material_current_stock
-- ----------------------------
DROP TABLE IF EXISTS `jsh_material_current_stock`;
CREATE TABLE `jsh_material_current_stock` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`material_id` bigint(20) DEFAULT NULL COMMENT '产品id',
`depot_id` bigint(20) DEFAULT NULL COMMENT '仓库id',
`current_number` decimal(24,6) DEFAULT NULL COMMENT '当前库存数量',
`current_unit_price` decimal(24,6) DEFAULT NULL COMMENT '当前单价',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='产品当前库存';
-- ----------------------------
-- Records of jsh_material_current_stock
-- ----------------------------
INSERT INTO `jsh_material_current_stock` VALUES ('19', '588', '14', '7.000000', null, '63', '0');
INSERT INTO `jsh_material_current_stock` VALUES ('20', '568', '14', '2.000000', null, '63', '0');
INSERT INTO `jsh_material_current_stock` VALUES ('21', '568', '15', '1.000000', null, '63', '0');
INSERT INTO `jsh_material_current_stock` VALUES ('22', '570', '14', '8.000000', null, '63', '0');
INSERT INTO `jsh_material_current_stock` VALUES ('23', '619', '14', '5.000000', null, '63', '0');
INSERT INTO `jsh_material_current_stock` VALUES ('24', '619', '15', '0.000000', null, '63', '0');
INSERT INTO `jsh_material_current_stock` VALUES ('25', '619', '17', '0.000000', null, '63', '0');
-- ----------------------------
-- Table structure for jsh_material_extend
-- ----------------------------
DROP TABLE IF EXISTS `jsh_material_extend`;
CREATE TABLE `jsh_material_extend` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`material_id` bigint(20) DEFAULT NULL COMMENT '商品id',
`bar_code` varchar(50) DEFAULT NULL COMMENT '商品条码',
`commodity_unit` varchar(50) DEFAULT NULL COMMENT '商品单位',
`sku` varchar(50) DEFAULT NULL COMMENT '多属性',
`purchase_decimal` decimal(24,6) DEFAULT NULL COMMENT '采购价格',
`commodity_decimal` decimal(24,6) DEFAULT NULL COMMENT '零售价格',
`wholesale_decimal` decimal(24,6) DEFAULT NULL COMMENT '销售价格',
`low_decimal` decimal(24,6) DEFAULT NULL COMMENT '最低售价',
`default_flag` varchar(1) DEFAULT '1' COMMENT '是否为默认单位1是0否',
`create_time` datetime DEFAULT NULL COMMENT '创建日期',
`create_serial` varchar(50) DEFAULT NULL COMMENT '创建人编码',
`update_serial` varchar(50) DEFAULT NULL COMMENT '更新人编码',
`update_time` bigint(20) DEFAULT NULL COMMENT '更新时间戳',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_Flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='产品价格扩展';
-- ----------------------------
-- Records of jsh_material_extend
-- ----------------------------
INSERT INTO `jsh_material_extend` VALUES ('1', '587', '1000', '', null, '11.000000', '22.000000', '22.000000', '22.000000', '1', '2020-02-20 23:22:03', 'jsh', 'jsh', '1595263657135', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('2', '568', '1001', '', null, '11.000000', '15.000000', '15.000000', '15.000000', '1', '2020-02-20 23:44:57', 'jsh', 'jsh', '1595265439418', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('3', '569', '1002', '', null, '10.000000', '15.000000', '15.000000', '13.000000', '1', '2020-02-20 23:45:15', 'jsh', 'jsh', '1582213514731', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('4', '570', '1003', '', null, '8.000000', '15.000000', '14.000000', '13.000000', '1', '2020-02-20 23:45:37', 'jsh', 'jsh', '1587657604430', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('5', '577', '1004', '', null, '10.000000', '20.000000', '20.000000', '20.000000', '1', '2020-02-20 23:46:36', 'jsh', 'jsh', '1582213596494', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('6', '577', '1005', '', null, '120.000000', '240.000000', '240.000000', '240.000000', '0', '2020-02-20 23:46:36', 'jsh', 'jsh', '1582213596497', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('7', '579', '1006', '', null, '20.000000', '30.000000', '30.000000', '30.000000', '1', '2020-02-20 23:47:04', 'jsh', 'jsh', '1595264270458', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('8', '579', '1007', '', null, '240.000000', '360.000000', '360.000000', '360.000000', '0', '2020-02-20 23:47:04', 'jsh', 'jsh', '1595264270466', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('9', '586', '1008', '', null, '12.000000', '15.000000', '15.000000', '15.000000', '1', '2020-02-20 23:47:23', 'jsh', 'jsh', '1595254981896', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('10', '588', '1009', '', null, '11.000000', '22.000000', '22.000000', '22.000000', '1', '2020-07-21 00:58:15', 'jsh', 'jsh', '1614699799073', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('36', '619', '1014', '', '橙色,M', '12.000000', '15.000000', '14.000000', null, '1', '2021-07-28 01:00:20', 'jsh', 'jsh', '1627405220316', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('37', '619', '1015', '', '橙色,L', '12.000000', '15.000000', '14.000000', null, '0', '2021-07-28 01:00:20', 'jsh', 'jsh', '1627405220327', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('38', '619', '1016', '', '绿色,M', '12.000000', '15.000000', '14.000000', null, '0', '2021-07-28 01:00:20', 'jsh', 'jsh', '1627405220336', '63', '0');
INSERT INTO `jsh_material_extend` VALUES ('39', '619', '1017', '', '绿色,L', '12.000000', '15.000000', '14.000000', null, '0', '2021-07-28 01:00:20', 'jsh', 'jsh', '1627405220346', '63', '0');
-- ----------------------------
-- Table structure for jsh_material_initial_stock
-- ----------------------------
DROP TABLE IF EXISTS `jsh_material_initial_stock`;
CREATE TABLE `jsh_material_initial_stock` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`material_id` bigint(20) DEFAULT NULL COMMENT '产品id',
`depot_id` bigint(20) DEFAULT NULL COMMENT '仓库id',
`number` decimal(24,6) DEFAULT NULL COMMENT '初始库存数量',
`low_safe_stock` decimal(24,6) DEFAULT NULL COMMENT '最低库存数量',
`high_safe_stock` decimal(24,6) DEFAULT NULL COMMENT '最高库存数量',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=205 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='产品初始库存';
-- ----------------------------
-- Records of jsh_material_initial_stock
-- ----------------------------
-- ----------------------------
-- Table structure for jsh_material_property
-- ----------------------------
DROP TABLE IF EXISTS `jsh_material_property`;
CREATE TABLE `jsh_material_property` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`native_name` varchar(50) DEFAULT NULL COMMENT '原始名称',
`enabled` bit(1) DEFAULT NULL COMMENT '是否启用',
`sort` varchar(10) DEFAULT NULL COMMENT '排序',
`another_name` varchar(50) DEFAULT NULL COMMENT '别名',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='产品扩展字段表';
-- ----------------------------
-- Records of jsh_material_property
-- ----------------------------
-- ----------------------------
-- Table structure for jsh_msg
-- ----------------------------
DROP TABLE IF EXISTS `jsh_msg`;
CREATE TABLE `jsh_msg` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`msg_title` varchar(100) DEFAULT NULL COMMENT '消息标题',
`msg_content` varchar(500) DEFAULT NULL COMMENT '消息内容',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`type` varchar(20) DEFAULT NULL COMMENT '消息类型',
`user_id` bigint(20) DEFAULT NULL COMMENT '接收人id',
`status` varchar(1) DEFAULT NULL COMMENT '状态1未读 2已读',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_Flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='消息表';
-- ----------------------------
-- Records of jsh_msg
-- ----------------------------
INSERT INTO `jsh_msg` VALUES ('2', '标题1', '内容1', '2019-09-10 00:11:39', '类型1', '63', '2', '63', '0');
-- ----------------------------
-- Table structure for jsh_organization
-- ----------------------------
DROP TABLE IF EXISTS `jsh_organization`;
CREATE TABLE `jsh_organization` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`org_no` varchar(20) DEFAULT NULL COMMENT '机构编号',
`org_abr` varchar(20) DEFAULT NULL COMMENT '机构简称',
`parent_id` bigint(20) DEFAULT NULL COMMENT '父机构id',
`sort` varchar(20) DEFAULT NULL COMMENT '机构显示顺序',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8 COMMENT='机构表';
-- ----------------------------
-- Records of jsh_organization
-- ----------------------------
INSERT INTO `jsh_organization` VALUES ('12', '001', '测试机构', null, '2', 'aaaa2', '2019-12-28 12:13:01', '2019-12-28 12:13:01', '63', '0');
INSERT INTO `jsh_organization` VALUES ('13', 'jg1', '机构1', '12', '3', '', '2020-07-21 00:09:57', '2020-07-21 00:10:22', '63', '0');
INSERT INTO `jsh_organization` VALUES ('14', '12', '机构2', '13', '4', '', '2020-07-21 22:45:42', '2021-02-15 22:18:30', '63', '0');
-- ----------------------------
-- Table structure for jsh_orga_user_rel
-- ----------------------------
DROP TABLE IF EXISTS `jsh_orga_user_rel`;
CREATE TABLE `jsh_orga_user_rel` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`orga_id` bigint(20) NOT NULL COMMENT '机构id',
`user_id` bigint(20) NOT NULL COMMENT '用户id',
`user_blng_orga_dspl_seq` varchar(20) DEFAULT NULL COMMENT '用户在所属机构中显示顺序',
`delete_flag` char(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`creator` bigint(20) DEFAULT NULL COMMENT '创建人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`updater` bigint(20) DEFAULT NULL COMMENT '更新人',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='机构用户关系表';
-- ----------------------------
-- Records of jsh_orga_user_rel
-- ----------------------------
INSERT INTO `jsh_orga_user_rel` VALUES ('10', '13', '131', '2', '0', '2019-12-28 12:13:15', '63', '2021-03-18 22:33:19', '63', '63');
INSERT INTO `jsh_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 `jsh_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 `jsh_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 `jsh_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 `jsh_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 `jsh_orga_user_rel` VALUES ('16', '12', '145', null, '0', '2021-03-19 00:03:44', '63', '2021-03-19 00:03:44', '63', '63');
-- ----------------------------
-- Table structure for jsh_person
-- ----------------------------
DROP TABLE IF EXISTS `jsh_person`;
CREATE TABLE `jsh_person` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`type` varchar(20) DEFAULT NULL COMMENT '类型',
`name` varchar(50) DEFAULT NULL COMMENT '姓名',
`enabled` bit(1) DEFAULT NULL COMMENT '启用',
`sort` varchar(10) DEFAULT NULL COMMENT '排序',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COMMENT='经手人表';
-- ----------------------------
-- Records of jsh_person
-- ----------------------------
INSERT INTO `jsh_person` VALUES ('14', '销售员', '小李', '', null, '63', '0');
INSERT INTO `jsh_person` VALUES ('15', '仓管员', '小军', '', null, '63', '0');
INSERT INTO `jsh_person` VALUES ('16', '财务员', '小夏', '', null, '63', '0');
INSERT INTO `jsh_person` VALUES ('17', '财务员', '小曹', '', null, '63', '0');
-- ----------------------------
-- Table structure for jsh_platform_config
-- ----------------------------
DROP TABLE IF EXISTS `jsh_platform_config`;
CREATE TABLE `jsh_platform_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`platform_key` varchar(100) DEFAULT NULL COMMENT '关键词',
`platform_key_info` varchar(100) DEFAULT NULL COMMENT '关键词名称',
`platform_value` varchar(200) DEFAULT NULL COMMENT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='平台参数';
-- ----------------------------
-- Records of jsh_platform_config
-- ----------------------------
INSERT INTO `jsh_platform_config` VALUES ('1', 'platform_name', '平台名称', '管伊佳ERP');
INSERT INTO `jsh_platform_config` VALUES ('2', 'activation_code', '激活码', '');
INSERT INTO `jsh_platform_config` VALUES ('3', 'platform_url', '官方网站', 'http://www.gyjerp.com/');
INSERT INTO `jsh_platform_config` VALUES ('4', 'bill_print_flag', '三联打印启用标记', '0');
INSERT INTO `jsh_platform_config` VALUES ('5', 'bill_print_url', '三联打印地址', '');
INSERT INTO `jsh_platform_config` VALUES ('6', 'pay_fee_url', '租户续费地址', '');
INSERT INTO `jsh_platform_config` VALUES ('7', 'register_flag', '注册启用标记', '1');
INSERT INTO `jsh_platform_config` VALUES ('8', 'app_activation_code', '手机端激活码', '');
INSERT INTO `jsh_platform_config` VALUES ('9', 'send_workflow_url', '发起流程地址', '');
INSERT INTO `jsh_platform_config` VALUES ('10', 'weixinUrl', '微信url', '');
INSERT INTO `jsh_platform_config` VALUES ('11', 'weixinAppid', '微信appid', '');
INSERT INTO `jsh_platform_config` VALUES ('12', 'weixinSecret', '微信secret', '');
INSERT INTO `jsh_platform_config` VALUES ('13', 'aliOss_endpoint', '阿里OSS-endpoint', '');
INSERT INTO `jsh_platform_config` VALUES ('14', 'aliOss_accessKeyId', '阿里OSS-accessKeyId', '');
INSERT INTO `jsh_platform_config` VALUES ('15', 'aliOss_accessKeySecret', '阿里OSS-accessKeySecret', '');
INSERT INTO `jsh_platform_config` VALUES ('16', 'aliOss_bucketName', '阿里OSS-bucketName', '');
INSERT INTO `jsh_platform_config` VALUES ('17', 'aliOss_linkUrl', '阿里OSS-linkUrl', '');
INSERT INTO `jsh_platform_config` VALUES ('18', 'bill_excel_url', '单据Excel地址', '');
-- ----------------------------
-- Table structure for jsh_role
-- ----------------------------
DROP TABLE IF EXISTS `jsh_role`;
CREATE TABLE `jsh_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(50) DEFAULT NULL COMMENT '名称',
`type` varchar(50) DEFAULT NULL COMMENT '类型',
`price_limit` varchar(50) DEFAULT NULL COMMENT '价格屏蔽 1-屏蔽采购价 2-屏蔽零售价 3-屏蔽销售价',
`value` varchar(200) DEFAULT NULL COMMENT '',
`description` varchar(100) DEFAULT NULL COMMENT '描述',
`enabled` bit(1) DEFAULT NULL COMMENT '启用',
`sort` varchar(10) DEFAULT NULL COMMENT '排序',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COMMENT='角色表';
-- ----------------------------
-- Records of jsh_role
-- ----------------------------
INSERT INTO `jsh_role` VALUES ('4', '管理员', '全部数据', null, null, null, '', null, null, '0');
INSERT INTO `jsh_role` VALUES ('10', '租户', '全部数据', null, null, '', '', null, null, '0');
INSERT INTO `jsh_role` VALUES ('16', '销售经理', '全部数据', null, null, 'ddd', '', null, '63', '0');
INSERT INTO `jsh_role` VALUES ('17', '销售代表', '个人数据', null, null, 'rrr', '', null, '63', '0');
-- ----------------------------
-- Table structure for jsh_sequence
-- ----------------------------
DROP TABLE IF EXISTS `jsh_sequence`;
CREATE TABLE `jsh_sequence` (
`seq_name` varchar(50) NOT NULL COMMENT '序列名称',
`min_value` bigint(20) NOT NULL COMMENT '最小值',
`max_value` bigint(20) NOT NULL COMMENT '最大值',
`current_val` bigint(20) NOT NULL COMMENT '当前值',
`increment_val` int(11) NOT NULL DEFAULT '1' COMMENT '增长步数',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`seq_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='单据编号表';
-- ----------------------------
-- Records of jsh_sequence
-- ----------------------------
INSERT INTO `jsh_sequence` VALUES ('depot_number_seq', '1', '999999999999999999', '672', '1', '单据编号sequence');
-- ----------------------------
-- Table structure for jsh_serial_number
-- ----------------------------
DROP TABLE IF EXISTS `jsh_serial_number`;
CREATE TABLE `jsh_serial_number` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`material_id` bigint(20) DEFAULT NULL COMMENT '产品表id',
`depot_id` bigint(20) DEFAULT NULL COMMENT '仓库id',
`serial_number` varchar(64) DEFAULT NULL COMMENT '序列号',
`is_sell` varchar(1) DEFAULT '0' COMMENT '是否卖出0未卖出1卖出',
`in_price` decimal(24,6) DEFAULT NULL COMMENT '入库单价',
`remark` varchar(1024) DEFAULT NULL COMMENT '备注',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`creator` bigint(20) DEFAULT NULL COMMENT '创建人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`updater` bigint(20) DEFAULT NULL COMMENT '更新人',
`in_bill_no` varchar(50) DEFAULT NULL COMMENT '入库单号',
`out_bill_no` varchar(50) DEFAULT NULL COMMENT '出库单号',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=110 DEFAULT CHARSET=utf8 COMMENT='序列号表';
-- ----------------------------
-- Records of jsh_serial_number
-- ----------------------------
-- ----------------------------
-- Table structure for jsh_supplier
-- ----------------------------
DROP TABLE IF EXISTS `jsh_supplier`;
CREATE TABLE `jsh_supplier` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`supplier` varchar(255) NOT NULL COMMENT '供应商名称',
`contacts` varchar(100) DEFAULT NULL COMMENT '联系人',
`phone_num` varchar(30) DEFAULT NULL COMMENT '联系电话',
`email` varchar(50) DEFAULT NULL COMMENT '电子邮箱',
`description` varchar(500) DEFAULT NULL COMMENT '备注',
`isystem` tinyint(4) DEFAULT NULL COMMENT '是否系统自带 0==系统 1==非系统',
`type` varchar(20) DEFAULT NULL COMMENT '类型',
`enabled` bit(1) DEFAULT NULL COMMENT '启用',
`advance_in` decimal(24,6) DEFAULT '0.000000' COMMENT '预收款',
`begin_need_get` decimal(24,6) DEFAULT NULL COMMENT '期初应收',
`begin_need_pay` decimal(24,6) DEFAULT NULL COMMENT '期初应付',
`all_need_get` decimal(24,6) DEFAULT NULL COMMENT '累计应收',
`all_need_pay` decimal(24,6) DEFAULT NULL COMMENT '累计应付',
`fax` varchar(30) DEFAULT NULL COMMENT '传真',
`telephone` varchar(30) DEFAULT NULL COMMENT '手机',
`address` varchar(100) DEFAULT NULL COMMENT '地址',
`tax_num` varchar(50) DEFAULT NULL COMMENT '纳税人识别号',
`bank_name` varchar(50) DEFAULT NULL COMMENT '开户行',
`account_number` varchar(50) DEFAULT NULL COMMENT '账号',
`tax_rate` decimal(24,6) DEFAULT NULL COMMENT '税率',
`sort` varchar(10) DEFAULT NULL COMMENT '排序',
`creator` bigint(20) DEFAULT NULL COMMENT '操作员',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=90 DEFAULT CHARSET=utf8 COMMENT='供应商/客户信息表';
-- ----------------------------
-- Records of jsh_supplier
-- ----------------------------
INSERT INTO `jsh_supplier` VALUES ('57', '供应商1', '小军', '12345678', '', '', null, '供应商', '', '0.000000', '0.000000', '0.000000', '0.000000', '4.000000', '', '15000000000', '地址1', '', '', '', '12.000000', null, '63', '63', '0');
INSERT INTO `jsh_supplier` VALUES ('58', '客户1', '小李', '12345678', '', '', null, '客户', '', '0.000000', '0.000000', '0.000000', '-100.000000', null, '', '', '', '', '', '', '12.000000', null, '63', '63', '0');
INSERT INTO `jsh_supplier` VALUES ('59', '客户2', '小陈', '', '', '', null, '客户', '', '0.000000', '0.000000', '0.000000', '0.000000', null, '', '', '', '', '', '', null, null, '63', '63', '0');
INSERT INTO `jsh_supplier` VALUES ('60', '12312666', '小曹', '', '', '', null, '会员', '', '970.000000', '0.000000', '0.000000', null, null, '', '13000000000', '', '', '', '', null, null, '63', '63', '0');
INSERT INTO `jsh_supplier` VALUES ('68', '供应商3', '晓丽', '12345678', '', 'fasdfadf', null, '供应商', '', '0.000000', '0.000000', '0.000000', '0.000000', '-35.000000', '', '13000000000', 'aaaa', '1341324', '', '', '13.000000', null, '63', '63', '0');
INSERT INTO `jsh_supplier` VALUES ('71', '客户3', '小周', '', '', '', null, '客户', '', '0.000000', '0.000000', '0.000000', '0.000000', null, '', '', '', '', '', '', null, null, '63', '63', '0');
INSERT INTO `jsh_supplier` VALUES ('74', '供应商5', '小季', '77779999', '', '', null, '供应商', '', '0.000000', '0.000000', '5.000000', '0.000000', '5.000000', '', '15806283912', '', '', '', '', '3.000000', null, '63', '63', '0');
-- ----------------------------
-- Table structure for jsh_system_config
-- ----------------------------
DROP TABLE IF EXISTS `jsh_system_config`;
CREATE TABLE `jsh_system_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`company_name` varchar(50) DEFAULT NULL COMMENT '公司名称',
`company_contacts` varchar(20) DEFAULT NULL COMMENT '公司联系人',
`company_address` varchar(50) DEFAULT NULL COMMENT '公司地址',
`company_tel` varchar(20) DEFAULT NULL COMMENT '公司电话',
`company_fax` varchar(20) DEFAULT NULL COMMENT '公司传真',
`company_post_code` varchar(20) DEFAULT NULL COMMENT '公司邮编',
`sale_agreement` varchar(500) DEFAULT NULL COMMENT '销售协议',
`depot_flag` varchar(1) DEFAULT '0' COMMENT '仓库启用标记0未启用1启用',
`customer_flag` varchar(1) DEFAULT '0' COMMENT '客户启用标记0未启用1启用',
`minus_stock_flag` varchar(1) DEFAULT '0' COMMENT '负库存启用标记0未启用1启用',
`purchase_by_sale_flag` varchar(1) DEFAULT '0' COMMENT '以销定购启用标记0未启用1启用',
`multi_level_approval_flag` varchar(1) DEFAULT '0' COMMENT '多级审核启用标记0未启用1启用',
`multi_bill_type` varchar(200) DEFAULT NULL COMMENT '流程类型,可多选',
`force_approval_flag` varchar(1) DEFAULT '0' COMMENT '强审核启用标记0未启用1启用',
`update_unit_price_flag` varchar(1) DEFAULT '1' COMMENT '更新单价启用标记0未启用1启用',
`over_link_bill_flag` varchar(1) DEFAULT '0' COMMENT '超出关联单据启用标记0未启用1启用',
`in_out_manage_flag` varchar(1) DEFAULT '0' COMMENT '出入库管理启用标记0未启用1启用',
`multi_account_flag` varchar(1) DEFAULT '0' COMMENT '多账户启用标记0未启用1启用',
`move_avg_price_flag` varchar(1) DEFAULT '0' COMMENT '移动平均价启用标记0未启用1启用',
`audit_print_flag` varchar(1) DEFAULT '0' COMMENT '先审核后打印启用标记0未启用1启用',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='系统参数';
-- ----------------------------
-- Records of jsh_system_config
-- ----------------------------
INSERT INTO `jsh_system_config` VALUES ('11', '公司test', '小李', '地址1', '12345678', null, null, '注:本单为我公司与客户约定账期内结款的依据,由客户或其单位员工签字生效,并承担法律责任。', '0', '0', '1', '0', '0', '', '0', '1', '0', '0', '0', '0', '0', '63', '0');
-- ----------------------------
-- Table structure for jsh_tenant
-- ----------------------------
DROP TABLE IF EXISTS `jsh_tenant`;
CREATE TABLE `jsh_tenant` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '用户id',
`login_name` varchar(255) DEFAULT NULL COMMENT '登录名',
`user_num_limit` int(11) DEFAULT NULL COMMENT '用户数量限制',
`type` varchar(1) DEFAULT '0' COMMENT '租户类型0免费租户1付费租户',
`enabled` bit(1) DEFAULT b'1' COMMENT '启用 0-禁用 1-启用',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`expire_time` datetime DEFAULT NULL COMMENT '到期时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='租户';
-- ----------------------------
-- Records of jsh_tenant
-- ----------------------------
INSERT INTO `jsh_tenant` VALUES ('13', '63', 'jsh', '2000', '1', '', '2021-02-17 23:19:17', '2099-02-17 23:19:17', null, '0');
-- ----------------------------
-- Table structure for jsh_unit
-- ----------------------------
DROP TABLE IF EXISTS `jsh_unit`;
CREATE TABLE `jsh_unit` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(50) DEFAULT NULL COMMENT '名称,支持多单位',
`basic_unit` varchar(50) DEFAULT NULL COMMENT '基础单位',
`other_unit` varchar(50) DEFAULT NULL COMMENT '副单位',
`other_unit_two` varchar(50) DEFAULT NULL COMMENT '副单位2',
`other_unit_three` varchar(50) DEFAULT NULL COMMENT '副单位3',
`ratio` decimal(24,3) DEFAULT NULL COMMENT '比例',
`ratio_two` decimal(24,3) DEFAULT NULL COMMENT '比例2',
`ratio_three` decimal(24,3) DEFAULT NULL COMMENT '比例3',
`enabled` bit(1) DEFAULT NULL COMMENT '启用',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COMMENT='多单位表';
-- ----------------------------
-- Records of jsh_unit
-- ----------------------------
INSERT INTO `jsh_unit` VALUES ('15', '个/(箱=12个)', '', '', null, null, '12.000', null, null, '', '63', '0');
INSERT INTO `jsh_unit` VALUES ('19', '个/(盒=15个)', '', '', null, null, '15.000', null, null, '', '63', '0');
INSERT INTO `jsh_unit` VALUES ('20', '盒/(箱=8盒)', '', '', null, null, '8.000', null, null, '', '63', '0');
INSERT INTO `jsh_unit` VALUES ('21', '瓶/(箱=12瓶)', '', '', null, null, '12.000', null, null, '', '63', '0');
-- ----------------------------
-- Table structure for jsh_user
-- ----------------------------
DROP TABLE IF EXISTS `jsh_user`;
CREATE TABLE `jsh_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(255) NOT NULL COMMENT '用户姓名--例如张三',
`login_name` varchar(255) NOT NULL COMMENT '登录用户名',
`password` varchar(50) DEFAULT NULL COMMENT '登陆密码',
`leader_flag` varchar(1) DEFAULT '0' COMMENT '是否经理0否1是',
`position` varchar(200) DEFAULT NULL COMMENT '职位',
`department` varchar(255) DEFAULT NULL COMMENT '所属部门',
`email` varchar(100) DEFAULT NULL COMMENT '电子邮箱',
`phonenum` varchar(100) DEFAULT NULL COMMENT '手机号码',
`ismanager` tinyint(4) NOT NULL DEFAULT '1' COMMENT '是否为管理者 0==管理者 1==员工',
`isystem` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否系统自带数据 ',
`status` tinyint(4) DEFAULT '0' COMMENT '状态0正常2封禁',
`description` varchar(500) DEFAULT NULL COMMENT '用户描述信息',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`weixin_open_id` varchar(100) DEFAULT NULL COMMENT '微信绑定',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=146 DEFAULT CHARSET=utf8 COMMENT='用户表';
-- ----------------------------
-- Records of jsh_user
-- ----------------------------
INSERT INTO `jsh_user` VALUES ('63', '测试用户', 'jsh', 'e10adc3949ba59abbe56e057f20f883e', '0', '主管', null, '666666@qq.com', '1123123123132', '1', '1', '0', '', null, null, '63', '0');
INSERT INTO `jsh_user` VALUES ('120', '管理员', 'admin', 'e10adc3949ba59abbe56e057f20f883e', '0', null, null, null, null, '1', '0', '0', null, null, null, '0', '0');
INSERT INTO `jsh_user` VALUES ('131', 'test123', 'test123', 'e10adc3949ba59abbe56e057f20f883e', '0', '总监', null, '7777777@qq.com', '', '1', '0', '0', '', null, null, '63', '0');
-- ----------------------------
-- Table structure for jsh_user_business
-- ----------------------------
DROP TABLE IF EXISTS `jsh_user_business`;
CREATE TABLE `jsh_user_business` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`type` varchar(50) DEFAULT NULL COMMENT '类别',
`key_id` varchar(50) DEFAULT NULL COMMENT '主id',
`value` varchar(10000) DEFAULT NULL COMMENT '',
`btn_str` varchar(2000) DEFAULT NULL COMMENT '按钮权限',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户id',
`delete_flag` varchar(1) DEFAULT '0' COMMENT '删除标记0未删除1删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=83 DEFAULT CHARSET=utf8 COMMENT='用户/角色/模块关系表';
-- ----------------------------
-- Records of jsh_user_business
-- ----------------------------
INSERT INTO `jsh_user_business` VALUES ('5', 'RoleFunctions', '4', '[210][225][211][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][1][14][243][15][234][16][18][236][245][258][261][32]', '[{\"funId\":13,\"btnStr\":\"1\"},{\"funId\":14,\"btnStr\":\"1\"},{\"funId\":243,\"btnStr\":\"1\"},{\"funId\":234,\"btnStr\":\"1\"},{\"funId\":16,\"btnStr\":\"1\"},{\"funId\":18,\"btnStr\":\"1\"},{\"funId\":236,\"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\"}]', null, '0');
INSERT INTO `jsh_user_business` VALUES ('6', 'RoleFunctions', '5', '[22][23][25][26][194][195][31][33][200][201][41][199][202]', null, null, '0');
INSERT INTO `jsh_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 `jsh_user_business` VALUES ('9', 'RoleFunctions', '7', '[168][13][12][16][14][15][189][18][19][132]', null, null, '0');
INSERT INTO `jsh_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 `jsh_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 `jsh_user_business` VALUES ('12', 'UserRole', '1', '[5]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('13', 'UserRole', '2', '[6][7]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('14', 'UserDepot', '2', '[1][2][6][7]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('15', 'UserDepot', '1', '[1][2][5][6][7][10][12][14][15][17]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('16', 'UserRole', '63', '[10]', null, '63', '0');
INSERT INTO `jsh_user_business` VALUES ('18', 'UserDepot', '63', '[14][15]', null, '63', '0');
INSERT INTO `jsh_user_business` VALUES ('19', 'UserDepot', '5', '[6][45][46][50]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('20', 'UserRole', '5', '[5]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('21', 'UserRole', '64', '[13]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('22', 'UserDepot', '64', '[1]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('23', 'UserRole', '65', '[5]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('24', 'UserDepot', '65', '[1]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('25', 'UserCustomer', '64', '[5][2]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('26', 'UserCustomer', '65', '[6]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('27', 'UserCustomer', '63', '[58]', null, '63', '0');
INSERT INTO `jsh_user_business` VALUES ('28', 'UserDepot', '96', '[7]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('29', 'UserRole', '96', '[6]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('30', 'UserRole', '113', '[10]', null, null, '0');
INSERT INTO `jsh_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][234][236]', '[{\"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 `jsh_user_business` VALUES ('34', 'UserRole', '115', '[10]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('35', 'UserRole', '117', '[10]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('36', 'UserDepot', '117', '[8][9]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('37', 'UserCustomer', '117', '[52]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('38', 'UserRole', '120', '[4]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('41', 'RoleFunctions', '12', '', null, null, '0');
INSERT INTO `jsh_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 `jsh_user_business` VALUES ('51', 'UserRole', '74', '[10]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('52', 'UserDepot', '121', '[13]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('54', 'UserDepot', '115', '[13]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('56', 'UserCustomer', '115', '[56]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('57', 'UserCustomer', '121', '[56]', null, null, '0');
INSERT INTO `jsh_user_business` VALUES ('67', 'UserRole', '131', '[17]', null, '63', '0');
INSERT INTO `jsh_user_business` VALUES ('68', 'RoleFunctions', '16', '[210]', null, '63', '0');
INSERT INTO `jsh_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]', '[{\"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');

File diff suppressed because it is too large Load Diff

Binary file not shown.

1
jshERP-boot/dist/jshERP/restart.sh vendored Normal file
View File

@ -0,0 +1 @@
./bin/run-manage.sh restart

6
jshERP-boot/dist/jshERP/start.bat vendored Normal file
View File

@ -0,0 +1,6 @@
@echo off
title jshERP
java -Xms1000m -Xmx2000m -jar .\lib\jshERP.jar
pause over

1
jshERP-boot/dist/jshERP/start.sh vendored Normal file
View File

@ -0,0 +1 @@
./bin/run-manage.sh start

1
jshERP-boot/dist/jshERP/status.sh vendored Normal file
View File

@ -0,0 +1 @@
./bin/run-manage.sh status

1
jshERP-boot/dist/jshERP/stop.sh vendored Normal file
View File

@ -0,0 +1 @@
./bin/run-manage.sh stop

View File

@ -50,7 +50,7 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
<version>8.0.21</version>
</dependency>
<!--http-->
<dependency>
@ -63,6 +63,19 @@
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
<!-- OkHttpClient 核心依赖 -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.12.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.8.21</version> <!-- 使用最新稳定版 -->
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>

View File

@ -293,6 +293,10 @@ public class AccountController extends BaseController {
HttpServletRequest request)throws Exception {
Boolean status = jsonObject.getBoolean("status");
String ids = jsonObject.getString("ids");
Map<String, Object> objectMap = new HashMap<>();
int res = accountService.batchSetStatus(status, ids);
if(res > 0) {

View File

@ -12,21 +12,21 @@ import com.jsh.erp.datasource.vo.DepotHeadVo4InDetail;
import com.jsh.erp.datasource.vo.DepotHeadVo4InOutMCount;
import com.jsh.erp.datasource.vo.DepotHeadVo4List;
import com.jsh.erp.datasource.vo.DepotHeadVo4StatementAccount;
import com.jsh.erp.service.DepotService;
import com.jsh.erp.service.DepotHeadService;
import com.jsh.erp.service.MaterialService;
import com.jsh.erp.service.SystemConfigService;
import com.jsh.erp.service.UserService;
import com.jsh.erp.service.*;
import com.jsh.erp.utils.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import okhttp3.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
@ -60,13 +60,16 @@ public class DepotHeadController extends BaseController {
@Resource
private UserService userService;
@Autowired
private DepotHeadServiceAws depotHeadServiceAws;
@GetMapping(value = "/info")
@ApiOperation(value = "根据id获取信息")
public String getList(@RequestParam("id") Long id,
HttpServletRequest request) throws Exception {
DepotHead depotHead = depotHeadService.getDepotHead(id);
Map<String, Object> objectMap = new HashMap<>();
if(depotHead != null) {
if (depotHead != null) {
objectMap.put("info", depotHead);
return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code);
} else {
@ -77,7 +80,7 @@ public class DepotHeadController extends BaseController {
@GetMapping(value = "/list")
@ApiOperation(value = "获取信息列表")
public TableDataInfo getList(@RequestParam(value = Constants.SEARCH, required = false) String search,
HttpServletRequest request)throws Exception {
HttpServletRequest request) throws Exception {
String type = StringUtil.getInfo(search, "type");
String subType = StringUtil.getInfo(search, "subType");
String hasDebt = StringUtil.getInfo(search, "hasDebt");
@ -101,7 +104,7 @@ public class DepotHeadController extends BaseController {
@DeleteMapping(value = "/delete")
@ApiOperation(value = "删除")
public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request)throws Exception {
public String deleteResource(@RequestParam("id") Long id, HttpServletRequest request) throws Exception {
Map<String, Object> objectMap = new HashMap<>();
int delete = depotHeadService.deleteDepotHead(id, request);
return returnStr(objectMap, delete);
@ -109,7 +112,7 @@ public class DepotHeadController extends BaseController {
@DeleteMapping(value = "/deleteBatch")
@ApiOperation(value = "批量删除")
public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request)throws Exception {
public String batchDeleteResource(@RequestParam("ids") String ids, HttpServletRequest request) throws Exception {
Map<String, Object> objectMap = new HashMap<>();
int delete = depotHeadService.batchDeleteDepotHead(ids, request);
return returnStr(objectMap, delete);
@ -117,6 +120,7 @@ public class DepotHeadController extends BaseController {
/**
* 批量设置状态-审核或者反审核
*
* @param jsonObject
* @param request
* @return
@ -124,20 +128,53 @@ public class DepotHeadController extends BaseController {
@PostMapping(value = "/batchSetStatus")
@ApiOperation(value = "批量设置状态-审核或者反审核")
public String batchSetStatus(@RequestBody JSONObject jsonObject,
HttpServletRequest request) throws Exception{
HttpServletRequest request) throws Exception {
boolean isnumber = jsonObject.containsKey("number");
Map<String, Object> objectMap = new HashMap<>();
String status = jsonObject.getString("status");
String ids = jsonObject.getString("ids");
String ids;
if(isnumber){
String number = jsonObject.getString("number");
ids=depotHeadServiceAws.findIdByNumber(number)+",";
}else {
ids = jsonObject.getString("ids");
//查询是否等于其他入库,如果是责调用BPM发起流程接口
String typeById = depotHeadServiceAws.findTypeById(jsonObject.getString("ids").replace(",", ""));
if ("入库".equals(typeById)&&"1".equals(status)){
String bpmUrl = systemConfigService.getBpmUrl();
String gdefaultNumber = depotHeadServiceAws.getdefaultNumberbyId(jsonObject.getString("ids").replace(",", ""));
//构建获取任务实例ID
String endpointform = "/eai/v1/querytask"; //
HttpUrl.Builder processurlbuilder = HttpUrl.parse(bpmUrl + endpointform).newBuilder();
JSONObject processjson =new JSONObject();
processjson.put("ProcessInstId",gdefaultNumber);
String bpmjson = sendPostRequest(processurlbuilder, processjson, "post");
String taskinstid = JSONObject.parseObject(bpmjson).getString("id");
//
String taskComplete = "/task/v1/taskComplete/"+taskinstid; // 假设目标接口路径
HttpUrl.Builder taskCompletebulider = HttpUrl.parse(bpmUrl + taskComplete).newBuilder();
taskCompletebulider.addQueryParameter("taskInstId",taskinstid);
taskCompletebulider.addQueryParameter("uid","admin");
taskCompletebulider.addQueryParameter("isBranch","true");
sendPostRequest(taskCompletebulider, "", "put");
}
}
int res = depotHeadService.batchSetStatus(status, ids);
if(res > 0) {
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
@ -167,39 +204,39 @@ public class DepotHeadController extends BaseController {
@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 {
HttpServletRequest request) throws Exception {
BaseResponseInfo res = new BaseResponseInfo();
Map<String, Object> map = new HashMap<String, Object>();
try {
List<Long> depotList = new ArrayList<>();
if(depotId != null) {
if (depotId != null) {
depotList.add(depotId);
} else {
//未选择仓库时默认为当前用户有权限的仓库
JSONArray depotArr = depotService.findDepotByCurrentUser();
for(Object obj: depotArr) {
for (Object obj : depotArr) {
JSONObject object = JSONObject.parseObject(obj.toString());
depotList.add(object.getLong("id"));
}
}
List<DepotHeadVo4InDetail> resList = new ArrayList<DepotHeadVo4InDetail>();
String [] creatorArray = depotHeadService.getCreatorArray();
if(creatorArray == null && organizationId != null) {
String[] creatorArray = depotHeadService.getCreatorArray();
if (creatorArray == null && organizationId != null) {
creatorArray = depotHeadService.getCreatorArrayByOrg(organizationId);
}
String subType = "出库".equals(type)? "销售" : "";
String [] organArray = depotHeadService.getOrganArray(subType, "");
String subType = "出库".equals(type) ? "销售" : "";
String[] organArray = depotHeadService.getOrganArray(subType, "");
List<Long> categoryList = new ArrayList<>();
if(categoryId != null){
if (categoryId != null) {
categoryList = materialService.getListByParentId(categoryId);
}
beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME);
endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME);
endTime = Tools.parseDayToTime(endTime, BusinessConstants.DAY_LAST_TIME);
Boolean forceFlag = systemConfigService.getForceApprovalFlag();
Boolean inOutManageFlag = systemConfigService.getInOutManageFlag();
List<DepotHeadVo4InDetail> 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);
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);
@ -214,7 +251,7 @@ public class DepotHeadController extends BaseController {
map.put("allPriceTotal", statistic.getAllPrice());
res.code = 200;
res.data = map;
} catch(Exception e){
} catch (Exception e) {
logger.error(e.getMessage(), e);
res.code = 500;
res.data = "获取数据失败";
@ -224,6 +261,7 @@ public class DepotHeadController extends BaseController {
/**
* 入库出库汇总接口
*
* @param currentPage
* @param pageSize
* @param oId
@ -249,32 +287,32 @@ public class DepotHeadController extends BaseController {
@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 {
HttpServletRequest request) throws Exception {
BaseResponseInfo res = new BaseResponseInfo();
Map<String, Object> map = new HashMap<String, Object>();
try {
List<Long> depotList = new ArrayList<>();
if(depotId != null) {
if (depotId != null) {
depotList.add(depotId);
} else {
//未选择仓库时默认为当前用户有权限的仓库
JSONArray depotArr = depotService.findDepotByCurrentUser();
for(Object obj: depotArr) {
for (Object obj : depotArr) {
JSONObject object = JSONObject.parseObject(obj.toString());
depotList.add(object.getLong("id"));
}
}
List<Long> categoryList = new ArrayList<>();
if(categoryId != null){
if (categoryId != null) {
categoryList = materialService.getListByParentId(categoryId);
}
beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME);
endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME);
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<DepotHeadVo4InOutMCount> 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);
(currentPage - 1) * pageSize, pageSize);
int total = depotHeadService.findInOutMaterialCountTotal(beginTime, endTime, type, categoryList, forceFlag, inOutManageFlag,
StringUtil.toNull(materialParam), depotList, organizationId, oId);
map.put("total", total);
@ -285,7 +323,7 @@ public class DepotHeadController extends BaseController {
map.put("priceSumTotal", statistic.getPriceSum());
res.code = 200;
res.data = map;
} catch(Exception e){
} catch (Exception e) {
logger.error(e.getMessage(), e);
res.code = 500;
res.data = "获取数据失败";
@ -295,12 +333,13 @@ public class DepotHeadController extends BaseController {
/**
* 调拨明细统计
*
* @param currentPage
* @param pageSize
* @param number
* @param materialParam
* @param depotIdF 调出仓库
* @param depotId 调入仓库
* @param depotIdF 调出仓库
* @param depotId 调入仓库
* @param beginTime
* @param endTime
* @param subType
@ -323,46 +362,46 @@ public class DepotHeadController extends BaseController {
@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 {
HttpServletRequest request) throws Exception {
BaseResponseInfo res = new BaseResponseInfo();
Map<String, Object> map = new HashMap<String, Object>();
try {
List<Long> depotList = new ArrayList<>();
List<Long> depotFList = new ArrayList<>();
if(depotId != null) {
if (depotId != null) {
depotList.add(depotId);
} else {
//未选择仓库时默认为当前用户有权限的仓库
JSONArray depotArr = depotService.findDepotByCurrentUser();
for(Object obj: depotArr) {
for (Object obj : depotArr) {
JSONObject object = JSONObject.parseObject(obj.toString());
depotList.add(object.getLong("id"));
}
}
if(depotIdF != null) {
if (depotIdF != null) {
depotFList.add(depotIdF);
} else {
//未选择仓库时默认为当前用户有权限的仓库
JSONArray depotArr = depotService.findDepotByCurrentUser();
for(Object obj: depotArr) {
for (Object obj : depotArr) {
JSONObject object = JSONObject.parseObject(obj.toString());
depotFList.add(object.getLong("id"));
}
}
String [] creatorArray = depotHeadService.getCreatorArray();
if(creatorArray == null && organizationId != null) {
String[] creatorArray = depotHeadService.getCreatorArray();
if (creatorArray == null && organizationId != null) {
creatorArray = depotHeadService.getCreatorArrayByOrg(organizationId);
}
List<Long> categoryList = new ArrayList<>();
if(categoryId != null){
if (categoryId != null) {
categoryList = materialService.getListByParentId(categoryId);
}
beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME);
endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME);
endTime = Tools.parseDayToTime(endTime, BusinessConstants.DAY_LAST_TIME);
Boolean forceFlag = systemConfigService.getForceApprovalFlag();
List<DepotHeadVo4InDetail> 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);
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);
@ -373,7 +412,7 @@ public class DepotHeadController extends BaseController {
map.put("allPriceTotal", statistic.getAllPrice());
res.code = 200;
res.data = map;
} catch(Exception e){
} catch (Exception e) {
logger.error(e.getMessage(), e);
res.code = 500;
res.data = "获取数据失败";
@ -383,12 +422,13 @@ public class DepotHeadController extends BaseController {
/**
* 对账单接口
*
* @param currentPage
* @param pageSize
* @param beginTime
* @param endTime
* @param organId
* @param hasDebt 1-有欠款 0-无欠款
* @param hasDebt 1-有欠款 0-无欠款
* @param supplierType
* @param request
* @return
@ -396,13 +436,13 @@ public class DepotHeadController extends BaseController {
@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,
HttpServletRequest request) throws Exception{
@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,
HttpServletRequest request) throws Exception {
BaseResponseInfo res = new BaseResponseInfo();
Map<String, Object> map = new HashMap<String, Object>();
try {
@ -424,14 +464,14 @@ public class DepotHeadController extends BaseController {
subTypeBack = "销售退货";
billType = "收款";
}
String [] organArray = depotHeadService.getOrganArray(subType, "");
beginTime = Tools.parseDayToTime(beginTime,BusinessConstants.DAY_FIRST_TIME);
endTime = Tools.parseDayToTime(endTime,BusinessConstants.DAY_LAST_TIME);
String[] organArray = depotHeadService.getOrganArray(subType, "");
beginTime = Tools.parseDayToTime(beginTime, BusinessConstants.DAY_FIRST_TIME);
endTime = Tools.parseDayToTime(endTime, BusinessConstants.DAY_LAST_TIME);
List<DepotHeadVo4StatementAccount> list = depotHeadService.getStatementAccount(beginTime, endTime, organId, organArray,
hasDebt, supplierType, type, subType,typeBack, subTypeBack, billType, (currentPage-1)*pageSize, pageSize);
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) {
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);
@ -446,11 +486,11 @@ public class DepotHeadController extends BaseController {
map.put("total", total);
List<DepotHeadVo4StatementAccount> totalPayList = depotHeadService.getStatementAccountTotalPay(beginTime, endTime, organId, organArray,
hasDebt, supplierType, type, subType, typeBack, subTypeBack, billType);
if(totalPayList.size()>0) {
if (totalPayList.size() > 0) {
DepotHeadVo4StatementAccount totalPayItem = totalPayList.get(0);
BigDecimal firstMoney = BigDecimal.ZERO;
BigDecimal lastMoney = BigDecimal.ZERO;
if(totalPayItem!=null) {
if (totalPayItem != null) {
//期初 = 起始期初金额+上期欠款金额-上期退货的欠款金额-上期收付款
firstMoney = totalPayItem.getBeginNeed().add(totalPayItem.getPreDebtMoney()).subtract(totalPayItem.getPreReturnDebtMoney()).subtract(totalPayItem.getPreBackMoney());
//期末 = 期初+本期欠款-本期退货的欠款金额-本期收款
@ -461,7 +501,7 @@ public class DepotHeadController extends BaseController {
}
res.code = 200;
res.data = map;
} catch(Exception e){
} catch (Exception e) {
logger.error(e.getMessage(), e);
res.code = 500;
res.data = "获取数据失败";
@ -471,6 +511,7 @@ public class DepotHeadController extends BaseController {
/**
* 根据编号查询单据信息
*
* @param number
* @param request
* @return
@ -478,17 +519,17 @@ public class DepotHeadController extends BaseController {
@GetMapping(value = "/getDetailByNumber")
@ApiOperation(value = "根据编号查询单据信息")
public BaseResponseInfo getDetailByNumber(@RequestParam("number") String number,
HttpServletRequest request)throws Exception {
HttpServletRequest request) throws Exception {
BaseResponseInfo res = new BaseResponseInfo();
DepotHeadVo4List dhl = new DepotHeadVo4List();
try {
List<DepotHeadVo4List> list = depotHeadService.getDetailByNumber(number, request);
if(list.size()>0) {
if (list.size() > 0) {
dhl = list.get(0);
}
res.code = 200;
res.data = dhl;
} catch(Exception e){
} catch (Exception e) {
logger.error(e.getMessage(), e);
res.code = 500;
res.data = "获取数据失败";
@ -498,6 +539,7 @@ public class DepotHeadController extends BaseController {
/**
* 根据原单号查询关联的单据列表
*
* @param number
* @param request
* @return
@ -505,14 +547,14 @@ public class DepotHeadController extends BaseController {
@GetMapping(value = "/getBillListByLinkNumber")
@ApiOperation(value = "根据原单号查询关联的单据列表")
public BaseResponseInfo getBillListByLinkNumber(@RequestParam("number") String number,
HttpServletRequest request)throws Exception {
HttpServletRequest request) throws Exception {
BaseResponseInfo res = new BaseResponseInfo();
DepotHead dh = new DepotHead();
try {
List<DepotHead> list = depotHeadService.getBillListByLinkNumber(number);
res.code = 200;
res.data = list;
} catch(Exception e){
} catch (Exception e) {
logger.error(e.getMessage(), e);
res.code = 500;
res.data = "获取数据失败";
@ -522,6 +564,7 @@ public class DepotHeadController extends BaseController {
/**
* 新增单据主表及单据子表信息
*
* @param body
* @param request
* @return
@ -529,16 +572,219 @@ public class DepotHeadController extends BaseController {
*/
@PostMapping(value = "/addDepotHeadAndDetail")
@ApiOperation(value = "新增单据主表及单据子表信息")
public Object addDepotHeadAndDetail(@RequestBody DepotHeadVo4Body body, HttpServletRequest request) throws Exception{
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);
depotHeadService.addDepotHeadAndDetail(beanJson, rows, request);
//获取application.properties中的值awspaas.bpm.url
String bpmUrl = systemConfigService.getBpmUrl();
JSONObject beanjsonObject = JSONObject.parseObject(beanJson);
JSONArray rowsObject = JSONObject.parseArray(rows);
String subType = beanjsonObject.getString("subType");
//只有采购订单调用bpm流程引擎
if ("采购订单".equals(subType)){
//调用bpm服务
// 获取 BPM 服务地址
String endpoint = "/process/v1/process/obj_a0211b6dec654be69c7fa48bcc6ec2bc"; // 假设目标接口路径
// 构建请求URL包含查询参数
HttpUrl.Builder urlBuilder = HttpUrl.parse(bpmUrl + endpoint).newBuilder();
urlBuilder.addQueryParameter("processDefId", "obj_a0211b6dec654be69c7fa48bcc6ec2bc");
urlBuilder.addQueryParameter("title", "单据编号:" + beanjsonObject.getString("defaultNumber") + ",采购订单流程");
urlBuilder.addQueryParameter("uid", "admin");
// 创建请求体
JSONObject requestBodyJson = new JSONObject();
//requestBodyJson.put("beanJson", beanJson);
// requestBodyJson.put("rows", rows);
okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(
MediaType.get("application/json; charset=utf-8"),
requestBodyJson.toJSONString()
);
// 构建完整POST请求
Request requestBpm = new Request.Builder().url(urlBuilder.build().toString()).post(requestBody).build();
OkHttpClient client = new OkHttpClient();
// 发送请求
try {
Response response = client.newCall(requestBpm).execute();
if (!response.isSuccessful()) {
throw new IOException("BPM接口调用失败: " + response.code());
}
// System.out.println("BPM响应: " + response.body().string());
JSONObject jsonObject = JSONObject.parseObject(response.body().string());
//获取流程实例ID
String processinstid = jsonObject.getString("id");
//构建主表请求数据
String endpointform = "/bo/v1/BO_EU_DEPOTHEAD/record"; // 假设目标接口路径
HttpUrl.Builder urlBuilderform = HttpUrl.parse(bpmUrl + endpointform).newBuilder();
urlBuilderform.addQueryParameter("boName", "BO_EU_DEPOTHEAD");
urlBuilderform.addQueryParameter("bindId", processinstid);
urlBuilderform.addQueryParameter("uid", "admin");
JSONObject formObeject = JSONObject.parseObject(convertKeysToUpperCase(beanjsonObject).toString());
sendPostRequest(urlBuilderform, formObeject, "post");
//构建主表请求结束
//构建子表请求数据开始
String endpointformdata = "/bo/v1/BO_EU_DEPOTDATA/record/batch"; // 假设目标接口路径
HttpUrl.Builder urlendpointformdata = HttpUrl.parse(bpmUrl + endpointformdata).newBuilder();
urlendpointformdata.addQueryParameter("boName", "BO_EU_DEPOTDATA");
urlendpointformdata.addQueryParameter("bindId", processinstid);
urlendpointformdata.addQueryParameter("uid", "admin");
JSONArray formObejectdara = removeUppercaseIdKeys(JSONArray.parseArray(convertKeysToUpperCase(rowsObject).toString()));
System.out.println(formObejectdara);
sendPostRequest(urlendpointformdata, formObejectdara, "post");
//流程启动请求开始
String processStart = "/process/v1/start/" + processinstid; // 假设目标接口路径
HttpUrl.Builder processStartendpoint = HttpUrl.parse(bpmUrl + processStart).newBuilder();
sendPostRequest(processStartendpoint, "", "put");
//流程启动请求结束
} catch (IOException e) {
logger.error("调用BPM服务失败", e);
}
}else if("采购".equals(subType)){
//构建主表请求数据 原来等于其他
String endpointform = "/process/v1/process/obj_560a684f02804660add41902dbac67d5"; // 假设目标接口路径
HttpUrl.Builder processurlbuilder = HttpUrl.parse(bpmUrl + endpointform).newBuilder();
processurlbuilder.addQueryParameter("processDefId", "obj_560a684f02804660add41902dbac67d5");
processurlbuilder.addQueryParameter("title", "单号为:"+beanjsonObject.getString("defaultNumber")+"采购入库流程");
processurlbuilder.addQueryParameter("uid", "admin");
JSONObject processjson =new JSONObject();
processjson.put("defaultNumber",beanjsonObject.getString("defaultNumber"));
String bpmjson = sendPostRequest(processurlbuilder, processjson, "post");
String processid = JSONObject.parseObject(bpmjson).getString("id");
//流程启动请求开始
String processStart = "/process/v1/start/" + processid; // 假设目标接口路径
HttpUrl.Builder processStartendpoint = HttpUrl.parse(bpmUrl + processStart).newBuilder();
sendPostRequest(processStartendpoint, "", "put");
//将bpmid传入erp中
depotHeadServiceAws.updateDefaultNumber(processid, beanjsonObject.getString("defaultNumber"));
String querytask = "/eai/v1/querytask";
HttpUrl.Builder querytaskbuilder = HttpUrl.parse(bpmUrl + querytask).newBuilder();
JSONObject querytaskjson =new JSONObject();
querytaskjson.put("ProcessInstId",processid);
String bpmtaskjson = sendPostRequest(querytaskbuilder, querytaskjson, "post");
String taskinstid = JSONObject.parseObject(bpmtaskjson).getString("id");
String taskComplete = "/task/v1/taskComplete/"+taskinstid; // 假设目标接口路径
HttpUrl.Builder taskCompletebulider = HttpUrl.parse(bpmUrl + taskComplete).newBuilder();
taskCompletebulider.addQueryParameter("taskInstId",taskinstid);
taskCompletebulider.addQueryParameter("uid","admin");
taskCompletebulider.addQueryParameter("isBranch","true");
taskCompletebulider.addQueryParameter("isBreakUserTask","false");
sendPostRequest(taskCompletebulider, "", "put");
}
return result;
}
/**
* 处理新增单据主表及子表信息的API请求
*
* @param body 请求体包含info主表数据和rows子表数据的JSON字符串
* @param request HTTP请求对象用于获取请求相关信息
* @return 返回标准的成功结果对象包含操作状态和消息
* @throws Exception 可能抛出的异常如数据验证失败或服务层异常
*/
@PostMapping(value = "/addDepotHeadAndDetailforAPI")
@ApiOperation(value = "新增单据主表及单据子表信息")
public Object addDepotHeadAndDetailApi(@RequestBody String body, HttpServletRequest request) throws Exception {
System.out.println(body.toString());
/* 将请求体解析为JSON对象 */
JSONObject beanjsonObject = JSONObject.parseObject(body);
/* 提取JSON中的rows和info字段分别对应子表和主表数据 */
String rows = beanjsonObject.getString("rows");
String beanJson = beanjsonObject.getString("info");
/* 调用服务层方法保存主表及子表信息 */
depotHeadService.addDepotHeadAndDetail(beanJson, rows, request);
/* 创建标准的成功返回结果 */
JSONObject result = ExceptionConstants.standardSuccess();
return result;
}
/**
* 将JSON对象或数组中的所有键转换为大写形式支持嵌套结构的递归处理
*
* @param json 需要转换键的JSON对象或数组
* @return 处理后的JSON对象或数组保持原有结构但所有键转为大写
*/
public static Object convertKeysToUpperCase(Object json) {
if (json instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) json;
JSONObject newObj = new JSONObject(true);
for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
String upperKey = entry.getKey().toUpperCase();
Object value = entry.getValue();
newObj.put(upperKey, convertKeysToUpperCase(value));
}
return newObj;
} else if (json instanceof JSONArray) {
JSONArray jsonArray = (JSONArray) json;
JSONArray newArr = new JSONArray();
for (Object item : jsonArray) {
newArr.add(convertKeysToUpperCase(item));
}
return newArr;
} else {
return json;
}
}
public static JSONArray removeUppercaseIdKeys(JSONArray jsonArray) {
for (Object obj : jsonArray) {
if (obj instanceof JSONObject) {
JSONObject jsonObject = (JSONObject) obj;
jsonObject.remove("ID"); // 只删大写 ID
}
}
return jsonArray;
}
public String sendPostRequest(HttpUrl.Builder urlBuilder, Object requestBodyJson, String requestType) {
OkHttpClient client = new OkHttpClient();
okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(
MediaType.get("application/json; charset=utf-8"),
requestBodyJson.toString()
);
// 构建完整POST请求
Request requestBpm;
if (requestType.equals("post")) {
requestBpm = new Request.Builder().url(urlBuilder.build().toString()).post(requestBody).build();
} else {
requestBpm = new Request.Builder().url(urlBuilder.build().toString()).put(requestBody).build();
}
try {
Response response = client.newCall(requestBpm).execute();
if (!response.isSuccessful()) {
throw new IOException("BPM接口调用失败: " + response.code());
}
return response.body().string();
// JSONObject jsonObject = JSONObject.parseObject(response.body().string());
} catch (IOException e) {
logger.error("调用BPM服务失败", e);
}
return "";
}
/**
* 更新单据主表及单据子表信息
*
* @param body
* @param request
* @return
@ -546,16 +792,17 @@ public class DepotHeadController extends BaseController {
*/
@PutMapping(value = "/updateDepotHeadAndDetail")
@ApiOperation(value = "更新单据主表及单据子表信息")
public Object updateDepotHeadAndDetail(@RequestBody DepotHeadVo4Body body, HttpServletRequest request) throws Exception{
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);
depotHeadService.updateDepotHeadAndDetail(beanJson, rows, request);
return result;
}
/**
* 统计今日采购额昨日采购额本月采购额今年采购额|销售额|零售额
*
* @param request
* @return
*/
@ -566,7 +813,7 @@ public class DepotHeadController extends BaseController {
try {
Map<String, Object> map = new HashMap<>();
String loginName = userService.getCurrentUser().getLoginName();
if(!"admin".equals(loginName)) {
if (!"admin".equals(loginName)) {
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;
@ -577,7 +824,7 @@ public class DepotHeadController extends BaseController {
}
res.code = 200;
res.data = map;
} catch(Exception e){
} catch (Exception e) {
logger.error(e.getMessage(), e);
res.code = 500;
res.data = "获取数据失败";
@ -588,6 +835,7 @@ public class DepotHeadController extends BaseController {
/**
* 根据当前用户获取操作员数组用于控制当前用户的数据权限限制可以看到的单据范围
* 注意该接口提供给部分插件使用勿删
*
* @param request
* @return
*/
@ -609,6 +857,7 @@ public class DepotHeadController extends BaseController {
/**
* 查询存在欠款的单据
*
* @param search
* @param request
* @return
@ -619,7 +868,7 @@ public class DepotHeadController extends BaseController {
public String debtList(@RequestParam(value = Constants.SEARCH, required = false) String search,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("pageSize") Integer pageSize,
HttpServletRequest request)throws Exception {
HttpServletRequest request) throws Exception {
Map<String, Object> objectMap = new HashMap<>();
String organIdStr = StringUtil.getInfo(search, "organId");
Long organId = Long.parseLong(organIdStr);
@ -629,7 +878,7 @@ public class DepotHeadController extends BaseController {
String endTime = StringUtil.getInfo(search, "endTime");
String status = StringUtil.getInfo(search, "status");
List<DepotHeadVo4List> list = depotHeadService.debtList(organId, materialParam, number, beginTime, endTime,
status, (currentPage-1)*pageSize, pageSize);
status, (currentPage - 1) * pageSize, pageSize);
int total = depotHeadService.debtListCount(organId, materialParam, number, beginTime, endTime, status);
if (list != null) {
objectMap.put("rows", list);
@ -644,6 +893,7 @@ public class DepotHeadController extends BaseController {
/**
* 导出存在欠款的单据
*
* @param organId
* @param materialParam
* @param number
@ -668,7 +918,7 @@ public class DepotHeadController extends BaseController {
@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 {
HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
depotHeadService.debtExport(organId, materialParam, number, type, subType, beginTime, endTime,
status, mpList, request, response);
@ -679,6 +929,7 @@ public class DepotHeadController extends BaseController {
/**
* 查询等待入库或出库的单据
*
* @param search
* @param request
* @return
@ -687,9 +938,9 @@ public class DepotHeadController extends BaseController {
@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 {
@RequestParam("currentPage") Integer currentPage,
@RequestParam("pageSize") Integer pageSize,
HttpServletRequest request) throws Exception {
Map<String, Object> objectMap = new HashMap<>();
String number = StringUtil.getInfo(search, "number");
String materialParam = StringUtil.getInfo(search, "materialParam");
@ -699,7 +950,7 @@ public class DepotHeadController extends BaseController {
String endTime = StringUtil.getInfo(search, "endTime");
String status = StringUtil.getInfo(search, "status");
List<DepotHeadVo4List> list = depotHeadService.waitBillList(number, materialParam, type, subType, beginTime, endTime,
status, (currentPage-1)*pageSize, pageSize);
status, (currentPage - 1) * pageSize, pageSize);
long total = depotHeadService.waitBillCount(number, materialParam, type, subType, beginTime, endTime, status);
if (list != null) {
objectMap.put("rows", list);
@ -714,6 +965,7 @@ public class DepotHeadController extends BaseController {
/**
* 查询等待入库或出库的单据数量
*
* @param search
* @param request
* @return
@ -722,7 +974,7 @@ public class DepotHeadController extends BaseController {
@GetMapping(value = "/waitBillCount")
@ApiOperation(value = "查询等待入库或出库的单据数量")
public String waitBillCount(@RequestParam(value = Constants.SEARCH, required = false) String search,
HttpServletRequest request)throws Exception {
HttpServletRequest request) throws Exception {
Map<String, Object> objectMap = new HashMap<>();
String number = StringUtil.getInfo(search, "number");
String materialParam = StringUtil.getInfo(search, "materialParam");
@ -738,6 +990,7 @@ public class DepotHeadController extends BaseController {
/**
* 批量新增入库或出库单据
*
* @param jsonObject
* @param request
* @return
@ -746,7 +999,7 @@ public class DepotHeadController extends BaseController {
@PostMapping(value = "/batchAddDepotHeadAndDetail")
@ApiOperation(value = "批量新增入库或出库单据")
public Object batchAddDepotHeadAndDetail(@RequestBody JSONObject jsonObject,
HttpServletRequest request) throws Exception{
HttpServletRequest request) throws Exception {
JSONObject result = ExceptionConstants.standardSuccess();
String ids = jsonObject.getString("ids");
depotHeadService.batchAddDepotHeadAndDetail(ids, request);

View File

@ -537,10 +537,10 @@ public class DepotItemController {
if (null != dataList) {
for (DepotItemVo4WithInfoEx diEx : dataList) {
JSONObject item = new JSONObject();
BigDecimal InSum = depotItemService.buyOrSale("入库", "采购", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number");
BigDecimal OutSum = depotItemService.buyOrSale("出库", "采购退货", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number");
BigDecimal InSumPrice = depotItemService.buyOrSale("入库", "采购", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price");
BigDecimal OutSumPrice = depotItemService.buyOrSale("出库", "采购退货", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price");
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());
@ -630,10 +630,10 @@ public class DepotItemController {
if (null != dataList) {
for (DepotItemVo4WithInfoEx diEx : dataList) {
JSONObject item = new JSONObject();
BigDecimal OutSumRetail = depotItemService.buyOrSale("出库", "零售", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number");
BigDecimal InSumRetail = depotItemService.buyOrSale("入库", "零售退货", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number");
BigDecimal OutSumRetailPrice = depotItemService.buyOrSale("出库", "零售", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price");
BigDecimal InSumRetailPrice = depotItemService.buyOrSale("入库", "零售退货", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price");
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());
@ -724,10 +724,10 @@ public class DepotItemController {
if (null != dataList) {
for (DepotItemVo4WithInfoEx diEx : dataList) {
JSONObject item = new JSONObject();
BigDecimal OutSum = depotItemService.buyOrSale("出库", "销售", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number");
BigDecimal InSum = depotItemService.buyOrSale("入库", "销售退货", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "number");
BigDecimal OutSumPrice = depotItemService.buyOrSale("出库", "销售", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price");
BigDecimal InSumPrice = depotItemService.buyOrSale("入库", "销售退货", diEx.getMId(), beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, "price");
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());

View File

@ -4,13 +4,11 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jsh.erp.base.BaseController;
import com.jsh.erp.base.TableDataInfo;
import com.jsh.erp.datasource.entities.Function;
import com.jsh.erp.datasource.entities.FunctionEx;
import com.jsh.erp.datasource.entities.SystemConfig;
import com.jsh.erp.datasource.entities.UserBusiness;
import com.jsh.erp.datasource.entities.*;
import com.jsh.erp.service.FunctionService;
import com.jsh.erp.service.SystemConfigService;
import com.jsh.erp.service.UserBusinessService;
import com.jsh.erp.service.UserService;
import com.jsh.erp.utils.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -41,6 +39,9 @@ public class FunctionController extends BaseController {
@Resource
private FunctionService functionService;
@Resource
private UserService userService;
@Resource
private UserBusinessService userBusinessService;
@ -169,9 +170,13 @@ public class FunctionController extends BaseController {
if(list.size()>0) {
approvalFlag = list.get(0).getMultiLevelApprovalFlag();
}
List<Function> dataList = functionService.getRoleFunction(pNumber);
if (dataList.size() != 0) {
dataArray = getMenuByFunction(dataList, fc, approvalFlag);
User userInfo = userService.getCurrentUser();
//获取当前用户所属的租户所拥有的功能id的map
Map<Long, Long> funIdMap = functionService.getCurrentTenantFunIdMap();
dataArray = getMenuByFunction(dataList, fc, approvalFlag, funIdMap, userInfo);
//增加首页菜单项
JSONObject homeItem = new JSONObject();
homeItem.put("id", 0);
@ -187,29 +192,32 @@ public class FunctionController extends BaseController {
return dataArray;
}
public JSONArray getMenuByFunction(List<Function> dataList, String fc, String approvalFlag) throws Exception {
public JSONArray getMenuByFunction(List<Function> dataList, String fc, String approvalFlag, Map<Long, Long> funIdMap, User userInfo) throws Exception {
JSONArray dataArray = new JSONArray();
for (Function function : dataList) {
//如果关闭多级审核遇到任务审核菜单直接跳过
if("0".equals(approvalFlag) && "/workflow".equals(function.getUrl())) {
continue;
}
JSONObject item = new JSONObject();
List<Function> newList = functionService.getRoleFunction(function.getNumber());
item.put("id", function.getId());
item.put("text", function.getName());
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);
if(childrenArr.size()>0) {
item.put("children", childrenArr);
dataArray.add(item);
//如果不是超管也不是租户就需要校验防止分配下级用户的功能权限大于租户的权限
if("admin".equals(userInfo.getLoginName()) || userInfo.getId().equals(userInfo.getTenantId()) || funIdMap.get(function.getId())!=null) {
//如果关闭多级审核遇到任务审核菜单直接跳过
if("0".equals(approvalFlag) && "/workflow".equals(function.getUrl())) {
continue;
}
} else {
if (fc.indexOf("[" + function.getId().toString() + "]") != -1) {
dataArray.add(item);
JSONObject item = new JSONObject();
List<Function> newList = functionService.getRoleFunction(function.getNumber());
item.put("id", function.getId());
item.put("text", function.getName());
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);
}
}
}
}
@ -227,7 +235,13 @@ public class FunctionController extends BaseController {
HttpServletRequest request)throws Exception {
JSONArray arr = new JSONArray();
try {
List<Function> dataListFun = functionService.findRoleFunction("0");
User userInfo = userService.getCurrentUser();
//获取当前用户所拥有的功能id列表
List<Long> funIdList = functionService.getCurrentUserFunIdList();
if("admin".equals(userInfo.getLoginName())) {
funIdList = null;
}
List<Function> dataListFun = functionService.findRoleFunction("0", funIdList);
//开始拼接json数据
JSONObject outer = new JSONObject();
outer.put("id", 0);
@ -252,7 +266,7 @@ public class FunctionController extends BaseController {
dataList.add(fun);
}
}
dataArray = getFunctionList(dataList, type, keyId);
dataArray = getFunctionList(dataList, type, keyId, funIdList);
outer.put("children", dataArray);
}
arr.add(outer);
@ -262,7 +276,7 @@ public class FunctionController extends BaseController {
return arr;
}
public JSONArray getFunctionList(List<Function> dataList, String type, String keyId) throws Exception {
public JSONArray getFunctionList(List<Function> dataList, String type, String keyId, List<Long> funIdList) throws Exception {
JSONArray dataArray = new JSONArray();
//获取权限信息
String ubValue = userBusinessService.getUBValueByTypeAndKeyId(type, keyId);
@ -274,9 +288,9 @@ public class FunctionController extends BaseController {
item.put("value", function.getId());
item.put("title", function.getName());
item.put("attributes", function.getName());
List<Function> funList = functionService.findRoleFunction(function.getNumber());
List<Function> funList = functionService.findRoleFunction(function.getNumber(), funIdList);
if(funList.size()>0) {
JSONArray funArr = getFunctionList(funList, type, keyId);
JSONArray funArr = getFunctionList(funList, type, keyId, funIdList);
item.put("children", funArr);
dataArray.add(item);
} else {
@ -321,20 +335,25 @@ public class FunctionController extends BaseController {
funIds = funIds.replace("][",",");
List<Function> dataList = functionService.findByIds(funIds);
JSONObject outer = new JSONObject();
outer.put("total", dataList.size());
User userInfo = userService.getCurrentUser();
Map<Long, Long> funIdMap = functionService.getCurrentUserFunIdMap();
//存放数据json数组
JSONArray dataArray = new JSONArray();
if (null != dataList) {
for (Function function : dataList) {
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);
//如果不是超管需要校验防止分配下级用户的按钮权限大于自身的权限
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;
}

View File

@ -135,7 +135,8 @@ public class UserController extends BaseController {
public BaseResponseInfo login(@RequestBody UserEx userParam, HttpServletRequest request)throws Exception {
BaseResponseInfo res = new BaseResponseInfo();
try {
userService.validateCaptcha(userParam.getCode(), userParam.getUuid());
//特殊处理不校验验证码
//userService.validateCaptcha(userParam.getCode(), userParam.getUuid());
Map<String, Object> data = userService.login(userParam.getLoginName().trim(), userParam.getPassword().trim(), request);
res.code = 200;
res.data = data;

View File

@ -0,0 +1,22 @@
package com.jsh.erp.datasource.mappers;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface DepotHeadMapperAws {
@Select("SELECT id FROM jsh_depot_head WHERE number = #{number}")
String getIdByNumber(String number);
@Select("SELECT type FROM jsh_depot_head WHERE id = #{id}")
String getIdBytype(String id);
@Insert("UPDATE jsh_depot_head SET default_number =#{processid} WHERE number = #{number} ")
int updateDefaultNumber(String processid, String number);
@Select("SELECT default_number FROM jsh_depot_head WHERE id = #{id}")
String getDefaultNumberbyId(String id);
}

View File

@ -101,7 +101,7 @@ public interface DepotItemMapperEx {
BigDecimal buyOrSaleNumber(
@Param("type") String type,
@Param("subType") String subType,
@Param("MId") Long MId,
@Param("meId") Long meId,
@Param("beginTime") String beginTime,
@Param("endTime") String endTime,
@Param("creatorArray") String[] creatorArray,
@ -114,7 +114,7 @@ public interface DepotItemMapperEx {
BigDecimal buyOrSalePrice(
@Param("type") String type,
@Param("subType") String subType,
@Param("MId") Long MId,
@Param("meId") Long meId,
@Param("beginTime") String beginTime,
@Param("endTime") String endTime,
@Param("creatorArray") String[] creatorArray,

View File

@ -1713,4 +1713,7 @@ public class DepotHeadService {
new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_BATCH_ADD).append(sb).toString(),
((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest());
}
}

View File

@ -0,0 +1,26 @@
package com.jsh.erp.service;
import com.jsh.erp.datasource.mappers.DepotHeadMapperAws;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class DepotHeadServiceAws {
@Autowired
private DepotHeadMapperAws depotHeadMapperAws;
public String findIdByNumber(String number) {
return depotHeadMapperAws.getIdByNumber(number);
}
public String findTypeById(String id) {
return depotHeadMapperAws.getIdBytype(id);
}
public int updateDefaultNumber(String processid, String number) {
return depotHeadMapperAws.updateDefaultNumber(processid, number);
}
public String getdefaultNumberbyId(String id) {
return depotHeadMapperAws.getDefaultNumberbyId(id);
}
}

View File

@ -86,16 +86,29 @@ public class DepotItemService {
return list;
}
/**
* 根据条件查询并分页获取仓库物品列表
* @param name 要查询的仓库物品名称
* @param type 仓库物品类型可选
* @param remark 备注信息可选
* @param offset 分页起始位置
* @param rows 分页每页大小
* @return 符合条件的仓库物品列表
* @throws Exception 数据访问异常
*/
public List<DepotItem> select(String name, Integer type, String remark, int offset, int rows)throws Exception {
List<DepotItem> 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{
@ -334,14 +347,14 @@ public class DepotItemService {
return result;
}
public BigDecimal buyOrSale(String type, String subType, Long MId, String beginTime, String endTime,
public BigDecimal buyOrSale(String type, String subType, Long meId, String beginTime, String endTime,
String[] creatorArray, Long organId, String [] organArray, List<Long> depotList, Boolean forceFlag, String sumType) throws Exception{
BigDecimal result= BigDecimal.ZERO;
try{
if (SUM_TYPE.equals(sumType)) {
result= depotItemMapperEx.buyOrSaleNumber(type, subType, MId, beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, sumType);
result= depotItemMapperEx.buyOrSaleNumber(type, subType, meId, beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, sumType);
} else {
result= depotItemMapperEx.buyOrSalePrice(type, subType, MId, beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, sumType);
result= depotItemMapperEx.buyOrSalePrice(type, subType, meId, beginTime, endTime, creatorArray, organId, organArray, depotList, forceFlag, sumType);
}
}catch(Exception e){
JshException.readFail(logger, e);

View File

@ -2,10 +2,7 @@ package com.jsh.erp.service;
import com.alibaba.fastjson.JSONObject;
import com.jsh.erp.constants.BusinessConstants;
import com.jsh.erp.datasource.entities.Function;
import com.jsh.erp.datasource.entities.FunctionEx;
import com.jsh.erp.datasource.entities.FunctionExample;
import com.jsh.erp.datasource.entities.User;
import com.jsh.erp.datasource.entities.*;
import com.jsh.erp.datasource.mappers.FunctionMapper;
import com.jsh.erp.datasource.mappers.FunctionMapperEx;
import com.jsh.erp.exception.JshException;
@ -20,9 +17,7 @@ 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 java.util.*;
@Service
public class FunctionService {
@ -33,10 +28,16 @@ public class FunctionService {
@Resource
private FunctionMapperEx functionMapperEx;
@Resource
private UserService userService;
@Resource
private UserBusinessService userBusinessService;
@Resource
private SystemConfigService systemConfigService;
@Resource
private LogService logService;
@ -193,7 +194,7 @@ public class FunctionService {
return list;
}
public List<Function> findRoleFunction(String pnumber)throws Exception{
public List<Function> findRoleFunction(String pnumber, List<Long> funIdList)throws Exception{
List<Function> list=null;
try{
Boolean multiLevelApprovalFlag = systemConfigService.getMultiLevelApprovalFlag();
@ -206,6 +207,9 @@ public class FunctionService {
criteria.andUrlNotEqualTo("/workflow");
}
}
if(funIdList!=null && funIdList.size()>0) {
criteria.andIdIn(funIdList);
}
example.setOrderByClause("Sort");
list =functionsMapper.selectByExample(example);
}catch(Exception e){
@ -228,4 +232,100 @@ public class FunctionService {
}
return list;
}
/**
* 获取当前用户所属的租户所拥有的功能id列表
* @return
*/
public List<Long> getCurrentTenantFunIdList() throws Exception {
List<Long> funIdList = new ArrayList<>();
Long roleId = 0L;
String fc = "";
User userInfo = userService.getCurrentUser();
//获取当前用户所有的角色id
List<UserBusiness> roleList = userBusinessService.getBasicData(userInfo.getTenantId().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<UserBusiness> 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<Long, Long> getCurrentTenantFunIdMap() throws Exception {
Map<Long, Long> funIdMap = new HashMap<>();
List<Long> list = getCurrentTenantFunIdList();
if(list.size()>0) {
for (Long funId : list) {
funIdMap.put(funId, funId);
}
return funIdMap;
} else {
return null;
}
}
/**
* 获取当前用户所拥有的功能id列表
* @return
*/
public List<Long> getCurrentUserFunIdList() throws Exception {
List<Long> funIdList = new ArrayList<>();
Long roleId = 0L;
String fc = "";
User userInfo = userService.getCurrentUser();
//获取当前用户所有的角色id
List<UserBusiness> 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<UserBusiness> 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<Long, Long> getCurrentUserFunIdMap() throws Exception {
Map<Long, Long> funIdMap = new HashMap<>();
List<Long> list = getCurrentUserFunIdList();
if(list.size()>0) {
for(Long funId: list) {
funIdMap.put(funId, funId);
}
return funIdMap;
} else {
return null;
}
}
}

View File

@ -47,9 +47,20 @@ public class MaterialPropertyService {
public List<MaterialProperty> getMaterialProperty()throws Exception {
MaterialPropertyExample example = new MaterialPropertyExample();
example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
List<MaterialProperty> list=null;
List<MaterialProperty> list = new ArrayList<>();
try{
list=materialPropertyMapper.selectByExample(example);
buildMaterialProperty(list);
List<MaterialProperty> mpList = materialPropertyMapper.selectByExample(example);
Map<String, String> 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);
}
@ -59,21 +70,7 @@ public class MaterialPropertyService {
public List<MaterialProperty> select(String name)throws Exception {
List<MaterialProperty> list = new ArrayList<>();
try{
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);
buildMaterialProperty(list);
PageUtils.startPage();
List<MaterialProperty> mpList = materialPropertyMapperEx.selectByConditionMaterialProperty(name);
Map<String, String> mpMap = new HashMap<>();
@ -92,6 +89,24 @@ public class MaterialPropertyService {
return list;
}
private void buildMaterialProperty(List<MaterialProperty> 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);

View File

@ -56,123 +56,125 @@ public class SystemConfigService {
@Resource
private LogService logService;
@Value(value="${file.uploadType}")
@Value(value = "${file.uploadType}")
private Long fileUploadType;
@Value(value="${file.path}")
@Value(value = "${file.path}")
private String filePath;
private static String DELETED = "deleted";
public SystemConfig getSystemConfig(long id)throws Exception {
SystemConfig result=null;
try{
result=systemConfigMapper.selectByPrimaryKey(id);
}catch(Exception e){
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<SystemConfig> getSystemConfig()throws Exception {
public List<SystemConfig> getSystemConfig() throws Exception {
SystemConfigExample example = new SystemConfigExample();
example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
List<SystemConfig> list=null;
try{
list=systemConfigMapper.selectByExample(example);
}catch(Exception e){
List<SystemConfig> list = null;
try {
list = systemConfigMapper.selectByExample(example);
} catch (Exception e) {
JshException.readFail(logger, e);
}
return list;
}
public List<SystemConfig> select(String companyName)throws Exception {
List<SystemConfig> list=null;
try{
public List<SystemConfig> select(String companyName) throws Exception {
List<SystemConfig> list = null;
try {
PageUtils.startPage();
list=systemConfigMapperEx.selectByConditionSystemConfig(companyName);
}catch(Exception e){
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{
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():"配置信息";
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){
} catch (Exception e) {
JshException.writeFail(logger, e);
}
return result;
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int updateSystemConfig(JSONObject obj, HttpServletRequest request) throws Exception{
public int updateSystemConfig(JSONObject obj, HttpServletRequest request) throws Exception {
SystemConfig systemConfig = JSONObject.parseObject(obj.toJSONString(), SystemConfig.class);
int result=0;
try{
int result = 0;
try {
result = systemConfigMapper.updateByPrimaryKeySelective(systemConfig);
String logInfo = StringUtil.isNotEmpty(systemConfig.getCompanyName())?systemConfig.getCompanyName():"配置信息";
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){
} catch (Exception e) {
JshException.writeFail(logger, e);
}
return result;
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int deleteSystemConfig(Long id, HttpServletRequest request)throws Exception {
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 {
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 {
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{
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){
} catch (Exception e) {
JshException.writeFail(logger, e);
}
return result;
}
public int checkIsNameExist(Long id, String name) throws Exception{
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<SystemConfig> list =null;
try{
list=systemConfigMapper.selectByExample(example);
}catch(Exception e){
List<SystemConfig> list = null;
try {
list = systemConfigMapper.selectByExample(example);
} catch (Exception e) {
JshException.readFail(logger, e);
}
return list==null?0:list.size();
return list == null ? 0 : list.size();
}
/**
* 本地文件上传
* @param mf 文件
* @param bizPath 自定义路径
*
* @param mf 文件
* @param bizPath 自定义路径
* @return
*/
public String uploadLocal(MultipartFile mf, String bizPath, HttpServletRequest request) throws Exception {
try {
if(StringUtil.isEmpty(bizPath)){
if (StringUtil.isEmpty(bizPath)) {
bizPath = "";
}
// Validate bizPath to prevent directory traversal
@ -184,7 +186,7 @@ public class SystemConfigService {
bizPath = bizPath + File.separator + tenantId;
String ctxPath = filePath;
String fileName = null;
File file = new File(ctxPath + File.separator + bizPath + File.separator );
File file = new File(ctxPath + File.separator + bizPath + File.separator);
if (!file.exists()) {
file.mkdirs();// 创建文件根目录
}
@ -192,8 +194,8 @@ public class SystemConfigService {
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"};
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)) {
@ -205,10 +207,10 @@ public class SystemConfigService {
throw new IllegalArgumentException("Invalid file type");
}
if(orgName.contains(".")){
if (orgName.contains(".")) {
fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName.indexOf("."));
}else{
fileName = orgName+ "_" + System.currentTimeMillis();
} else {
fileName = orgName + "_" + System.currentTimeMillis();
}
String savePath = file.getPath() + File.separator + fileName;
File savefile = new File(savePath);
@ -216,9 +218,9 @@ public class SystemConfigService {
// 返回路径
String dbpath = null;
if(StringUtil.isNotEmpty(bizPath)){
if (StringUtil.isNotEmpty(bizPath)) {
dbpath = bizPath + File.separator + fileName;
}else{
} else {
dbpath = fileName;
}
if (dbpath.contains("\\")) {
@ -233,12 +235,13 @@ public class SystemConfigService {
/**
* 阿里Oss文件上传
* @param mf 文件
* @param bizPath 自定义路径
*
* @param mf 文件
* @param bizPath 自定义路径
* @return
*/
public String uploadAliOss(MultipartFile mf, String bizPath, HttpServletRequest request) throws Exception {
if(StringUtil.isEmpty(bizPath)){
if (StringUtil.isEmpty(bizPath)) {
bizPath = "";
}
// Validate bizPath to prevent directory traversal
@ -258,8 +261,8 @@ public class SystemConfigService {
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"};
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)) {
@ -271,16 +274,16 @@ public class SystemConfigService {
throw new IllegalArgumentException("Invalid file type");
}
if(orgName.contains(".")){
if (orgName.contains(".")) {
fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName.indexOf("."));
}else{
fileName = orgName+ "_" + System.currentTimeMillis();
} else {
fileName = orgName + "_" + System.currentTimeMillis();
}
String filePathStr = StringUtil.isNotEmpty(filePath)? filePath.substring(1):"";
String filePathStr = StringUtil.isNotEmpty(filePath) ? filePath.substring(1) : "";
String objectName = filePathStr + "/" + bizPath + "/" + fileName;
String smallObjectName = filePathStr + "-small/" + bizPath + "/" + fileName;
// 如果未指定本地路径则默认从示例程序所属项目对应本地路径中上传文件流
byte [] byteArr = mf.getBytes();
byte[] byteArr = mf.getBytes();
// 创建OSSClient实例
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
@ -293,7 +296,7 @@ public class SystemConfigService {
// 如果是图片-保存缩略图
int index = fileName.lastIndexOf(".");
String ext = fileName.substring(index + 1);
if(ext.contains("gif") || ext.contains("jpg") || ext.contains("jpeg") || ext.contains("png")
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);
@ -342,13 +345,14 @@ public class SystemConfigService {
/**
* 逻辑删除文件
*
* @param pathList
*/
public void deleteFileByPathList(List<String> pathList) throws Exception {
if(fileUploadType == 1) {
if (fileUploadType == 1) {
//本地
for(String pathStr: pathList) {
if(StringUtil.isNotEmpty(pathStr)) {
for (String pathStr : pathList) {
if (StringUtil.isNotEmpty(pathStr)) {
String[] pathArr = pathStr.split(",");
for (String path : pathArr) {
// 提取文件的路径
@ -379,17 +383,17 @@ public class SystemConfigService {
}
}
}
} else if(fileUploadType == 2) {
} 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)) {
for (String pathStr : pathList) {
if (StringUtil.isNotEmpty(pathStr)) {
String[] pathArr = pathStr.split(",");
for (String path : pathArr) {
if(StringUtil.isNotEmpty(path)) {
if (StringUtil.isNotEmpty(path)) {
// 创建OSSClient实例
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
@ -416,10 +420,9 @@ public class SystemConfigService {
}
/**
*
* @param ossClient
* @param bucketName
* @param sourceObjectKey 源文件路径包括目录和文件名
* @param sourceObjectKey 源文件路径包括目录和文件名
* @param destinationObjectKey 目标文件路径包括新目录和文件名
*/
public void copySourceToDest(OSS ossClient, String bucketName, String sourceObjectKey, String destinationObjectKey) {
@ -437,7 +440,7 @@ public class SystemConfigService {
}
public String getDirByPath(String path) {
if(path.lastIndexOf("/")>-1) {
if (path.lastIndexOf("/") > -1) {
return path.substring(0, path.lastIndexOf("/"));
} else {
return null;
@ -451,11 +454,11 @@ public class SystemConfigService {
int height = img.getHeight();
int tempw = 0;
int temph = 0;
if(width>height){
if (width > height) {
tempw = w;
temph = height* w/width;
}else{
tempw = w*width/height;
temph = height * w / width;
} else {
tempw = w * width / height;
temph = w;
}
Image _img = img.getScaledInstance(tempw, temph, Image.SCALE_DEFAULT);
@ -468,15 +471,16 @@ public class SystemConfigService {
/**
* 获取仓库开关
*
* @return
* @throws Exception
*/
public boolean getDepotFlag() throws Exception {
boolean depotFlag = false;
List<SystemConfig> list = getSystemConfig();
if(list.size()>0) {
if (list.size() > 0) {
String flag = list.get(0).getDepotFlag();
if(("1").equals(flag)) {
if (("1").equals(flag)) {
depotFlag = true;
}
}
@ -485,15 +489,16 @@ public class SystemConfigService {
/**
* 获取客户开关
*
* @return
* @throws Exception
*/
public boolean getCustomerFlag() throws Exception {
boolean customerFlag = false;
List<SystemConfig> list = getSystemConfig();
if(list.size()>0) {
if (list.size() > 0) {
String flag = list.get(0).getCustomerFlag();
if(("1").equals(flag)) {
if (("1").equals(flag)) {
customerFlag = true;
}
}
@ -502,15 +507,16 @@ public class SystemConfigService {
/**
* 获取负库存开关
*
* @return
* @throws Exception
*/
public boolean getMinusStockFlag() throws Exception {
boolean minusStockFlag = false;
List<SystemConfig> list = getSystemConfig();
if(list.size()>0) {
if (list.size() > 0) {
String flag = list.get(0).getMinusStockFlag();
if(("1").equals(flag)) {
if (("1").equals(flag)) {
minusStockFlag = true;
}
}
@ -519,15 +525,16 @@ public class SystemConfigService {
/**
* 获取更新单价开关
*
* @return
* @throws Exception
*/
public boolean getUpdateUnitPriceFlag() throws Exception {
boolean updateUnitPriceFlag = true;
List<SystemConfig> list = getSystemConfig();
if(list.size()>0) {
if (list.size() > 0) {
String flag = list.get(0).getUpdateUnitPriceFlag();
if(("0").equals(flag)) {
if (("0").equals(flag)) {
updateUnitPriceFlag = false;
}
}
@ -536,15 +543,16 @@ public class SystemConfigService {
/**
* 获取超出关联单据开关
*
* @return
* @throws Exception
*/
public boolean getOverLinkBillFlag() throws Exception {
boolean overLinkBillFlag = false;
List<SystemConfig> list = getSystemConfig();
if(list.size()>0) {
if (list.size() > 0) {
String flag = list.get(0).getOverLinkBillFlag();
if(("1").equals(flag)) {
if (("1").equals(flag)) {
overLinkBillFlag = true;
}
}
@ -553,15 +561,16 @@ public class SystemConfigService {
/**
* 获取强审核开关
*
* @return
* @throws Exception
*/
public boolean getForceApprovalFlag() throws Exception {
boolean forceApprovalFlag = false;
List<SystemConfig> list = getSystemConfig();
if(list.size()>0) {
if (list.size() > 0) {
String flag = list.get(0).getForceApprovalFlag();
if(("1").equals(flag)) {
if (("1").equals(flag)) {
forceApprovalFlag = true;
}
}
@ -570,15 +579,16 @@ public class SystemConfigService {
/**
* 获取多级审核开关
*
* @return
* @throws Exception
*/
public boolean getMultiLevelApprovalFlag() throws Exception {
boolean multiLevelApprovalFlag = false;
List<SystemConfig> list = getSystemConfig();
if(list.size()>0) {
if (list.size() > 0) {
String flag = list.get(0).getMultiLevelApprovalFlag();
if(("1").equals(flag)) {
if (("1").equals(flag)) {
multiLevelApprovalFlag = true;
}
}
@ -587,15 +597,16 @@ public class SystemConfigService {
/**
* 获取出入库管理开关
*
* @return
* @throws Exception
*/
public boolean getInOutManageFlag() throws Exception {
boolean inOutManageFlag = false;
List<SystemConfig> list = getSystemConfig();
if(list.size()>0) {
if (list.size() > 0) {
String flag = list.get(0).getInOutManageFlag();
if(("1").equals(flag)) {
if (("1").equals(flag)) {
inOutManageFlag = true;
}
}
@ -604,15 +615,16 @@ public class SystemConfigService {
/**
* 获取移动平均价开关
*
* @return
* @throws Exception
*/
public boolean getMoveAvgPriceFlag() throws Exception {
boolean moveAvgPriceFlag = false;
List<SystemConfig> list = getSystemConfig();
if(list.size()>0) {
if (list.size() > 0) {
String flag = list.get(0).getMoveAvgPriceFlag();
if(("1").equals(flag)) {
if (("1").equals(flag)) {
moveAvgPriceFlag = true;
}
}
@ -621,6 +633,7 @@ public class SystemConfigService {
/**
* Excel导出统一方法
*
* @param title
* @param head
* @param tip
@ -633,11 +646,11 @@ public class SystemConfigService {
String[] names = StringUtil.listToStringArray(nameList);
List<String[]> objects = new ArrayList<>();
if (null != arr) {
for (Object object: arr) {
for (Object object : arr) {
List<Object> list = (List<Object>) object;
String[] objs = new String[names.length];
for (int i = 0; i < list.size(); i++) {
if(null != list.get(i)) {
if (null != list.get(i)) {
objs[i] = list.get(i).toString();
}
}
@ -647,4 +660,12 @@ public class SystemConfigService {
File file = ExcelUtils.exportObjectsOneSheet(title, tip, names, title, objects);
ExcelUtils.downloadExcel(file, file.getName(), response);
}
@Value("${awspaas.bpm.url}")
private String bpmUrl;
public String getBpmUrl() {
return bpmUrl;
}
}

View File

@ -5,15 +5,15 @@ server.servlet.session.timeout=36000
server.servlet.context-path=/jshERP-boot
#数据库连接
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jsh_erp?useUnicode=true&characterEncoding=utf8&useCursorFetch=true&defaultFetchSize=500&allowMultiQueries=true&rewriteBatchedStatements=true&useSSL=false
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.password=AWS2025aws!
#mybatis-plus配置
mybatis-plus.mapper-locations=classpath:./mapper_xml/*.xml
# Redis
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=1234abcd
spring.redis.password=
#租户对应的角色id
manage.roleId=10
#租户允许创建的用户数
@ -32,4 +32,6 @@ file.path=/opt/jshERP/upload
server.tomcat.basedir=/opt/tmp/tomcat
#文件上传限制(byte)
spring.servlet.multipart.max-file-size=10485760
spring.servlet.multipart.max-request-size=10485760
spring.servlet.multipart.max-request-size=10485760
#bpm接口地址
awspaas.bpm.url=http://127.0.0.1:8088/api

View File

@ -412,7 +412,7 @@
</select>
<select id="getListWithBuyOrSale" parameterType="com.jsh.erp.datasource.entities.DepotItemExample" resultMap="ResultByMaterial">
select m.id MId, me.bar_code, m.name MName, m.mfrs MMfrs, m.model MModel, m.standard MStandard,
select m.id MId, di.material_extend_id, me.bar_code, m.name MName, m.mfrs MMfrs, m.model MModel, m.standard MStandard,
m.other_field1 MOtherField1,m.other_field2 MOtherField2,m.other_field3 MOtherField3,
concat_ws('', m.unit, u.basic_unit) MaterialUnit, m.color MColor, m.brand, u.name unit_name
from jsh_material m
@ -475,7 +475,7 @@
and (dh.status = '1' or dh.status = '2' or dh.status = '3')
</if>
and ifnull(m.delete_flag,'0') !='1'
group by m.id, me.bar_code, m.name, m.mfrs, m.model, m.standard,
group by m.id, di.material_extend_id, me.bar_code, m.name, m.mfrs, m.model, m.standard,
m.other_field1,m.other_field2,m.other_field3, m.unit, u.basic_unit, m.color, m.brand, u.name
order by m.id desc
<if test="offset != null and rows != null">
@ -484,7 +484,7 @@
</select>
<select id="getListWithBuyOrSaleCount" resultType="java.lang.Integer">
select count(1) from (select m.id
select count(1) from (select m.id, di.material_extend_id
from jsh_material m
left join jsh_depot_item di on di.material_id=m.id and ifnull(m.delete_Flag,'0') !='1'
left join jsh_material_extend me on me.id=di.material_extend_id and ifnull(me.delete_Flag,'0') !='1'
@ -544,7 +544,7 @@
and (dh.status = '1' or dh.status = '2' or dh.status = '3')
</if>
and ifnull(di.delete_flag,'0') !='1'
group by m.id) cc
group by m.id, di.material_extend_id) cc
</select>
<select id="buyOrSaleNumber" resultType="java.math.BigDecimal">
@ -553,7 +553,7 @@
and dh.type=#{type} and dh.sub_type=#{subType}
and dh.oper_time &gt;= #{beginTime}
and dh.oper_time &lt;= #{endTime}
and di.material_id =#{MId}
and di.material_extend_id =#{meId}
<if test="creatorArray != null">
and dh.creator in (
<foreach collection="creatorArray" item="creator" separator=",">
@ -590,8 +590,8 @@
and dh.type=#{type} and dh.sub_type=#{subType}
and dh.oper_time &gt;= #{beginTime}
and dh.oper_time &lt;= #{endTime}
<if test="MId != null">
and di.material_id =#{MId}
<if test="meId != null">
and di.material_extend_id =#{meId}
</if>
<if test="creatorArray != null">
and dh.creator in (

BIN
jshERP-web/dist.zip Normal file

Binary file not shown.

View File

@ -3,7 +3,7 @@
<span class="action" v-if="showAd">
<a v-if="theme==='light'" class="ad_title" target="_blank" :href="payFeeUrl">
<a-icon type="cloud" theme="filled" style="color: yellow; font-size: 16px; line-height: 16px;" />
<span>管伊佳ERP网络版158元1年</span>
<span>管伊佳ERP网络版198元1年</span>
</a>
</span>
<!-- update_begin author:zhaoxin date:20191129 for: 做头部菜单栏导航 -->

View File

@ -120,17 +120,17 @@
<a-row class="form-row" :gutter="24">
<a-col :lg="6" :md="6" :sm="6">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="mpShort.otherField1.name">
<a-input v-decorator.trim="[ 'otherField1' ]" />
<a-input :placeholder="'请输入'+ mpShort.otherField1.name" v-decorator.trim="[ 'otherField1' ]" />
</a-form-item>
</a-col>
<a-col :lg="6" :md="6" :sm="6">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="mpShort.otherField2.name">
<a-input v-decorator.trim="[ 'otherField2' ]" />
<a-input :placeholder="'请输入'+ mpShort.otherField2.name" v-decorator.trim="[ 'otherField2' ]" />
</a-form-item>
</a-col>
<a-col :lg="6" :md="6" :sm="6">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="mpShort.otherField3.name">
<a-input v-decorator.trim="[ 'otherField3' ]" />
<a-input :placeholder="'请输入'+ mpShort.otherField3.name" v-decorator.trim="[ 'otherField3' ]" />
</a-form-item>
</a-col>
</a-row>
@ -350,9 +350,9 @@
},
mpShort: {
mfrs: {},
otherField1: {},
otherField2: {},
otherField3: {}
otherField1: { name: '扩展1' },
otherField2: { name: '扩展2' },
otherField3: { name: '扩展3' }
},
meTable: {
loading: false,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,538 @@
2025/06/06-14:51:58 INFO [main] com.jsh.erp.ErpApplication - Starting ErpApplication on syn-172-222-002-022.res.spectrum.com with PID 19493 (/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes started by mengshun in /Users/mengshun/Documents/dev/JSH_ERP)
2025/06/06-14:51:58 DEBUG [main] com.jsh.erp.ErpApplication - Running with Spring Boot v2.0.0.RELEASE, Spring v5.0.4.RELEASE
2025/06/06-14:51:58 INFO [main] com.jsh.erp.ErpApplication - No active profile set, falling back to default profiles: default
2025/06/06-14:52:01 ERROR [main] com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:123)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:194)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:460)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:534)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:601)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.afterPropertiesSet(MybatisSqlSessionFactoryBean.java:387)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.getObject(MybatisSqlSessionFactoryBean.java:685)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:166)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$9164a314.CGLIB$sqlSessionFactory$1(<generated>)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$9164a314$$FastClassBySpringCGLIB$$f9bdb5af.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$9164a314.sqlSessionFactory(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1250)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1424)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1326)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
at com.jsh.erp.ErpApplication.main(ErpApplication.java:22)
2025/06/06-14:52:01 ERROR [main] org.springframework.boot.SpringApplication - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountMapper' defined in file [/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes/com/jsh/erp/datasource/mappers/AccountMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
at com.jsh.erp.ErpApplication.main(ErpApplication.java:22)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountMapper' defined in file [/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes/com/jsh/erp/datasource/mappers/AccountMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
... 17 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountMapper' defined in file [/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes/com/jsh/erp/datasource/mappers/AccountMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1439)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1326)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
... 30 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:587)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1250)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1424)
... 43 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579)
... 55 common frames omitted
Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:51)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:604)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.afterPropertiesSet(MybatisSqlSessionFactoryBean.java:387)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.getObject(MybatisSqlSessionFactoryBean.java:685)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:166)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$9164a314.CGLIB$sqlSessionFactory$1(<generated>)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$9164a314$$FastClassBySpringCGLIB$$f9bdb5af.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$9164a314.sqlSessionFactory(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 56 common frames omitted
2025/06/06-14:52:15 INFO [main] com.jsh.erp.ErpApplication - Starting ErpApplication on syn-172-222-002-022.res.spectrum.com with PID 19552 (/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes started by mengshun in /Users/mengshun/Documents/dev/JSH_ERP)
2025/06/06-14:52:15 DEBUG [main] com.jsh.erp.ErpApplication - Running with Spring Boot v2.0.0.RELEASE, Spring v5.0.4.RELEASE
2025/06/06-14:52:15 INFO [main] com.jsh.erp.ErpApplication - No active profile set, falling back to default profiles: default
2025/06/06-14:52:18 ERROR [main] com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:123)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:194)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:460)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:534)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:601)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.afterPropertiesSet(MybatisSqlSessionFactoryBean.java:387)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.getObject(MybatisSqlSessionFactoryBean.java:685)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:166)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$b49e9859.CGLIB$sqlSessionFactory$1(<generated>)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$b49e9859$$FastClassBySpringCGLIB$$433f8525.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$b49e9859.sqlSessionFactory(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1250)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1424)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1326)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
at com.jsh.erp.ErpApplication.main(ErpApplication.java:22)
2025/06/06-14:52:18 ERROR [main] org.springframework.boot.SpringApplication - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountMapper' defined in file [/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes/com/jsh/erp/datasource/mappers/AccountMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
at com.jsh.erp.ErpApplication.main(ErpApplication.java:22)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountMapper' defined in file [/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes/com/jsh/erp/datasource/mappers/AccountMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
... 17 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountMapper' defined in file [/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes/com/jsh/erp/datasource/mappers/AccountMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1439)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1326)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
... 30 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:587)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1250)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1424)
... 43 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579)
... 55 common frames omitted
Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:51)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:604)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.afterPropertiesSet(MybatisSqlSessionFactoryBean.java:387)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.getObject(MybatisSqlSessionFactoryBean.java:685)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:166)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$b49e9859.CGLIB$sqlSessionFactory$1(<generated>)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$b49e9859$$FastClassBySpringCGLIB$$433f8525.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$b49e9859.sqlSessionFactory(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 56 common frames omitted
2025/06/06-14:52:53 INFO [main] com.jsh.erp.ErpApplication - Starting ErpApplication on syn-172-222-002-022.res.spectrum.com with PID 19591 (/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes started by mengshun in /Users/mengshun/Documents/dev/JSH_ERP)
2025/06/06-14:52:53 DEBUG [main] com.jsh.erp.ErpApplication - Running with Spring Boot v2.0.0.RELEASE, Spring v5.0.4.RELEASE
2025/06/06-14:52:53 INFO [main] com.jsh.erp.ErpApplication - No active profile set, falling back to default profiles: default
2025/06/06-14:52:55 ERROR [main] com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:123)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:365)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:194)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:460)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:534)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:601)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.afterPropertiesSet(MybatisSqlSessionFactoryBean.java:387)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.getObject(MybatisSqlSessionFactoryBean.java:685)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:166)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$30811595.CGLIB$sqlSessionFactory$2(<generated>)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$30811595$$FastClassBySpringCGLIB$$58ba0e9a.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$30811595.sqlSessionFactory(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1250)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1424)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1326)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
at com.jsh.erp.ErpApplication.main(ErpApplication.java:22)
2025/06/06-14:52:55 ERROR [main] org.springframework.boot.SpringApplication - Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountMapper' defined in file [/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes/com/jsh/erp/datasource/mappers/AccountMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:388)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1234)
at com.jsh.erp.ErpApplication.main(ErpApplication.java:22)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountMapper' defined in file [/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes/com/jsh/erp/datasource/mappers/AccountMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1344)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
... 17 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accountMapper' defined in file [/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes/com/jsh/erp/datasource/mappers/AccountMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1439)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1326)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:513)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:484)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:618)
at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:177)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318)
... 30 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:587)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1250)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1424)
... 43 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:579)
... 55 common frames omitted
Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: GlobalConfigUtils setMetaData Fail ! Cause:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:51)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:604)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.afterPropertiesSet(MybatisSqlSessionFactoryBean.java:387)
at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.getObject(MybatisSqlSessionFactoryBean.java:685)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:166)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$30811595.CGLIB$sqlSessionFactory$2(<generated>)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$30811595$$FastClassBySpringCGLIB$$58ba0e9a.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$30811595.sqlSessionFactory(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 56 common frames omitted
2025/06/06-14:53:26 INFO [main] com.jsh.erp.ErpApplication - Starting ErpApplication on syn-172-222-002-022.res.spectrum.com with PID 19632 (/Users/mengshun/Documents/dev/JSH_ERP/jshERP-boot/target/classes started by mengshun in /Users/mengshun/Documents/dev/JSH_ERP)
2025/06/06-14:53:26 DEBUG [main] com.jsh.erp.ErpApplication - Running with Spring Boot v2.0.0.RELEASE, Spring v5.0.4.RELEASE
2025/06/06-14:53:26 INFO [main] com.jsh.erp.ErpApplication - No active profile set, falling back to default profiles: default
2025/06/06-14:53:29 INFO [main] com.jsh.erp.ErpApplication - Started ErpApplication in 2.875 seconds (JVM running for 3.111)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,312 @@
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Preparing: select * from jsh_user_business where key_id=? and type=? and ifnull(delete_flag,'0') !='1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Parameters: 63(String), UserRole(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Preparing: select * from jsh_user_business where key_id=? and type=? and ifnull(delete_flag,'0') !='1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Parameters: 10(String), RoleFunctions(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.SystemConfigMapper.selectByExample - ==> Preparing: SELECT 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, tenant_id, delete_flag FROM jsh_system_config WHERE jsh_system_config.tenant_id = 63 AND (delete_flag <> ?)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.SystemConfigMapper.selectByExample - ==> Parameters: 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.SystemConfigMapper.selectByExample - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 0(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 9
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Preparing: SELECT id, username, login_name, password, leader_flag, position, department, email, phonenum, ismanager, isystem, status, description, remark, weixin_open_id, tenant_id, delete_flag FROM jsh_user WHERE jsh_user.tenant_id = 63 AND id = ?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Parameters: 63(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Preparing: SELECT id, username, login_name, password, leader_flag, position, department, email, phonenum, ismanager, isystem, status, description, remark, weixin_open_id, tenant_id, delete_flag FROM jsh_user WHERE jsh_user.tenant_id = 63 AND id = ?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Parameters: 63(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Preparing: select * from jsh_user_business where key_id=? and type=? and ifnull(delete_flag,'0') !='1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Parameters: 63(String), UserRole(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Preparing: select * from jsh_user_business where key_id=? and type=? and ifnull(delete_flag,'0') !='1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Parameters: 10(String), RoleFunctions(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 0401(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 2
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 040102(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 040104(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 0502(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 4
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 050203(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 050202(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 050201(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 050204(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 0603(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 3
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 060301(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 060303(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 060305(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 0801(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 5
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 080103(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 080105(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 080107(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 080109(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 080111(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 0704(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 6
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 070402(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 070403(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 070404(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 070405(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 070406(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 070407(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 0301(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 14
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030113(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030102(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030105(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030103(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030104(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030106(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030107(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030150(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030108(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030109(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030101(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030110(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030111(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 030112(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 0101(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 4
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 010101(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 010102(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 010103(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 010105(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 0102(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 7
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 01020101(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 01020102(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 01020103(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 010202(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 010204(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 010205(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 010206(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 0001(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 10
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 000102(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 000103(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 000108(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 000104(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 000105(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 000105(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 000109(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 000106(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 000107(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (enabled = ? AND parent_number = ? AND delete_flag <> ?) ORDER BY Sort
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: true(Boolean), 000112(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Preparing: SELECT id, username, login_name, password, leader_flag, position, department, email, phonenum, ismanager, isystem, status, description, remark, weixin_open_id, tenant_id, delete_flag FROM jsh_user WHERE jsh_user.tenant_id = 63 AND id = ?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Parameters: 63(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Preparing: select * from jsh_user_business where key_id=? and type=? and ifnull(delete_flag,'0') !='1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Parameters: 63(String), UserRole(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Preparing: select * from jsh_user_business where key_id=? and type=? and ifnull(delete_flag,'0') !='1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Parameters: 10(String), RoleFunctions(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Preparing: SELECT id, number, name, parent_number, url, component, state, sort, enabled, type, push_btn, icon, delete_flag FROM jsh_function WHERE (delete_flag <> ?)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - ==> Parameters: 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-6] com.jsh.erp.datasource.mappers.FunctionMapper.selectByExample - <== Total: 64
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-2] com.jsh.erp.datasource.mappers.SystemConfigMapper.selectByExample - ==> Preparing: SELECT 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, tenant_id, delete_flag FROM jsh_system_config WHERE jsh_system_config.tenant_id = 63 AND (delete_flag <> ?)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-4] com.jsh.erp.datasource.mappers.PlatformConfigMapper.selectByExample - ==> Preparing: SELECT id, platform_key, platform_key_info, platform_value FROM jsh_platform_config WHERE (platform_key = ?)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-2] com.jsh.erp.datasource.mappers.SystemConfigMapper.selectByExample - ==> Parameters: 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-8] com.jsh.erp.datasource.mappers.PlatformConfigMapper.selectByExample - ==> Preparing: SELECT id, platform_key, platform_key_info, platform_value FROM jsh_platform_config WHERE (platform_key = ?)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-4] com.jsh.erp.datasource.mappers.PlatformConfigMapper.selectByExample - ==> Parameters: pay_fee_url(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-2] com.jsh.erp.datasource.mappers.SystemConfigMapper.selectByExample - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-8] com.jsh.erp.datasource.mappers.PlatformConfigMapper.selectByExample - ==> Parameters: bill_excel_url(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-4] com.jsh.erp.datasource.mappers.PlatformConfigMapper.selectByExample - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-8] com.jsh.erp.datasource.mappers.PlatformConfigMapper.selectByExample - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-10] com.jsh.erp.datasource.mappers.SupplierMapper.selectByExample - ==> Preparing: SELECT 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 FROM jsh_supplier WHERE jsh_supplier.tenant_id = 63 AND (type LIKE ? AND enabled = ? AND delete_flag <> ?) ORDER BY sort ASC, id DESC
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-1] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Preparing: SELECT id, username, login_name, password, leader_flag, position, department, email, phonenum, ismanager, isystem, status, description, remark, weixin_open_id, tenant_id, delete_flag FROM jsh_user WHERE jsh_user.tenant_id = 63 AND id = ?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-10] com.jsh.erp.datasource.mappers.SupplierMapper.selectByExample - ==> Parameters: 供应商(String), true(Boolean), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Preparing: select * from jsh_user_business where key_id=? and type=? and ifnull(delete_flag,'0') !='1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-1] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Parameters: 63(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Parameters: 63(String), UserRole(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-1] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-10] com.jsh.erp.datasource.mappers.SupplierMapper.selectByExample - <== Total: 8
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.RoleMapperEx.getRoleWithoutTenant - ==> Preparing: select * from jsh_role where 1=1 and ifnull(delete_flag,'0') !='1' and id=?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.RoleMapperEx.getRoleWithoutTenant - ==> Parameters: 10(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.RoleMapperEx.getRoleWithoutTenant - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-1] com.jsh.erp.datasource.mappers.MsgMapperEx.selectByConditionMsg_COUNT - ==> Preparing: SELECT count(0) FROM jsh_msg WHERE jsh_msg.tenant_id = 63 AND 1 = 1 AND ifnull(delete_Flag, '0') != '1' AND user_id = ?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-1] com.jsh.erp.datasource.mappers.MsgMapperEx.selectByConditionMsg_COUNT - ==> Parameters: 63(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-1] com.jsh.erp.datasource.mappers.MsgMapperEx.selectByConditionMsg_COUNT - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Preparing: SELECT id, username, login_name, password, leader_flag, position, department, email, phonenum, ismanager, isystem, status, description, remark, weixin_open_id, tenant_id, delete_flag FROM jsh_user WHERE jsh_user.tenant_id = 63 AND id = ?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-1] com.jsh.erp.datasource.mappers.MsgMapperEx.selectByConditionMsg - ==> Preparing: SELECT * FROM jsh_msg WHERE jsh_msg.tenant_id = 63 AND 1 = 1 AND ifnull(delete_Flag, '0') != '1' AND user_id = ? ORDER BY create_time DESC LIMIT ?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Parameters: 63(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-1] com.jsh.erp.datasource.mappers.MsgMapperEx.selectByConditionMsg - ==> Parameters: 63(Long), 5(Integer)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Preparing: select * from jsh_user_business where key_id=? and type=? and ifnull(delete_flag,'0') !='1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Parameters: 63(String), UserRole(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-1] com.jsh.erp.datasource.mappers.MsgMapperEx.selectByConditionMsg - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.RoleMapperEx.getRoleWithoutTenant - ==> Preparing: select * from jsh_role where 1=1 and ifnull(delete_flag,'0') !='1' and id=?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.RoleMapperEx.getRoleWithoutTenant - ==> Parameters: 10(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.RoleMapperEx.getRoleWithoutTenant - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Preparing: SELECT id, username, login_name, password, leader_flag, position, department, email, phonenum, ismanager, isystem, status, description, remark, weixin_open_id, tenant_id, delete_flag FROM jsh_user WHERE jsh_user.tenant_id = 63 AND id = ?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Parameters: 63(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.SystemConfigMapper.selectByExample - ==> Preparing: SELECT 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, tenant_id, delete_flag FROM jsh_system_config WHERE jsh_system_config.tenant_id = 63 AND (delete_flag <> ?)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.SystemConfigMapper.selectByExample - ==> Parameters: 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Preparing: select * from jsh_user_business where key_id=? and type=? and ifnull(delete_flag,'0') !='1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-7] com.jsh.erp.datasource.mappers.SystemConfigMapper.selectByExample - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-5] com.jsh.erp.datasource.mappers.UserMapper.selectByExample - ==> Preparing: SELECT id, username, login_name, password, leader_flag, position, department, email, phonenum, ismanager, isystem, status, description, remark, weixin_open_id, tenant_id, delete_flag FROM jsh_user WHERE jsh_user.tenant_id = 63 AND (status = ? AND delete_flag <> ?)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - ==> Parameters: 63(String), UserCustomer(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-9] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Preparing: SELECT id, username, login_name, password, leader_flag, position, department, email, phonenum, ismanager, isystem, status, description, remark, weixin_open_id, tenant_id, delete_flag FROM jsh_user WHERE jsh_user.tenant_id = 63 AND id = ?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-5] com.jsh.erp.datasource.mappers.UserMapper.selectByExample - ==> Parameters: 0(Byte), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-9] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - ==> Parameters: 63(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-5] com.jsh.erp.datasource.mappers.UserMapper.selectByExample - <== Total: 3
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.UserBusinessMapperEx.getBasicDataByKeyIdAndType - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-9] com.jsh.erp.datasource.mappers.UserMapper.selectByPrimaryKey - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.SupplierMapper.selectByExample - ==> Preparing: SELECT 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 FROM jsh_supplier WHERE jsh_supplier.tenant_id = 63 AND (type LIKE ? AND enabled = ? AND delete_flag <> ?) ORDER BY sort ASC, id DESC
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-9] com.jsh.erp.datasource.mappers.MsgMapper.selectByExample - ==> Preparing: SELECT id, msg_title, msg_content, create_time, type, user_id, status, tenant_id, delete_Flag FROM jsh_msg WHERE jsh_msg.tenant_id = 63 AND (status = ? AND user_id = ? AND delete_Flag <> ?) ORDER BY id DESC
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.SupplierMapper.selectByExample - ==> Parameters: 客户(String), true(Boolean), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.SupplierMapper.selectByExample - <== Total: 3
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-9] com.jsh.erp.datasource.mappers.MsgMapper.selectByExample - ==> Parameters: 1(String), 63(Long), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-9] com.jsh.erp.datasource.mappers.MsgMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.PersonMapper.selectByExample - ==> Preparing: SELECT id, type, name, enabled, sort, tenant_id, delete_flag FROM jsh_person WHERE jsh_person.tenant_id = 63 AND (enabled = ? AND delete_flag <> ?)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.PersonMapper.selectByExample - ==> Parameters: true(Boolean), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.PersonMapper.selectByExample - <== Total: 4
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.AccountMapper.selectByExample - ==> Preparing: SELECT id, name, serial_no, initial_amount, current_amount, remark, enabled, sort, is_default, tenant_id, delete_flag FROM jsh_account WHERE jsh_account.tenant_id = 63 AND (enabled = ? AND delete_flag <> ?) ORDER BY sort ASC, id DESC
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.AccountMapper.selectByExample - ==> Parameters: true(Boolean), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.AccountMapper.selectByExample - <== Total: 2
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.selectByConditionDepotHead_COUNT - ==> Preparing: SELECT count(0) FROM (SELECT dh.id FROM jsh_depot_head dh LEFT JOIN jsh_depot_item di ON di.tenant_id = 63 AND dh.id = di.header_id AND ifnull(di.delete_flag, '0') != '1' LEFT JOIN jsh_material m ON m.tenant_id = 63 AND di.material_id = m.id AND ifnull(m.delete_flag, '0') != '1' LEFT JOIN jsh_material_extend me ON me.tenant_id = 63 AND di.material_extend_id = me.id AND ifnull(me.delete_flag, '0') != '1' WHERE dh.tenant_id = 63 AND 1 = 1 AND dh.type = ? AND dh.sub_type = ? AND dh.oper_time >= ? AND dh.oper_time <= ? AND ifnull(dh.delete_flag, '0') != '1' GROUP BY dh.id) tb LEFT JOIN jsh_depot_head jdh ON jdh.tenant_id = 63 AND jdh.id = tb.id AND ifnull(jdh.delete_flag, '0') != '1' LEFT JOIN jsh_supplier s ON s.tenant_id = 63 AND jdh.organ_id = s.id AND ifnull(s.delete_flag, '0') != '1' LEFT JOIN jsh_user u ON u.tenant_id = 63 AND jdh.creator = u.id LEFT JOIN jsh_account a ON a.tenant_id = 63 AND jdh.account_id = a.id AND ifnull(a.delete_flag, '0') != '1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.selectByConditionDepotHead_COUNT - ==> Parameters: 其它(String), 采购订单(String), 2025-04-24 00:00:00(String), 2025-07-24 23:59:59(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.selectByConditionDepotHead_COUNT - <== Total: 1
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.selectByConditionDepotHead - ==> Preparing: SELECT jdh.*, s.supplier OrganName, u.username userName, a.name AccountName FROM (SELECT dh.id FROM jsh_depot_head dh LEFT JOIN jsh_depot_item di ON di.tenant_id = 63 AND dh.id = di.header_id AND ifnull(di.delete_flag, '0') != '1' LEFT JOIN jsh_material m ON m.tenant_id = 63 AND di.material_id = m.id AND ifnull(m.delete_flag, '0') != '1' LEFT JOIN jsh_material_extend me ON me.tenant_id = 63 AND di.material_extend_id = me.id AND ifnull(me.delete_flag, '0') != '1' WHERE dh.tenant_id = 63 AND 1 = 1 AND dh.type = ? AND dh.sub_type = ? AND dh.oper_time >= ? AND dh.oper_time <= ? AND ifnull(dh.delete_flag, '0') != '1' GROUP BY dh.id ORDER BY dh.id DESC) tb LEFT JOIN jsh_depot_head jdh ON jdh.tenant_id = 63 AND jdh.id = tb.id AND ifnull(jdh.delete_flag, '0') != '1' LEFT JOIN jsh_supplier s ON s.tenant_id = 63 AND jdh.organ_id = s.id AND ifnull(s.delete_flag, '0') != '1' LEFT JOIN jsh_user u ON u.tenant_id = 63 AND jdh.creator = u.id LEFT JOIN jsh_account a ON a.tenant_id = 63 AND jdh.account_id = a.id AND ifnull(a.delete_flag, '0') != '1' ORDER BY jdh.id DESC LIMIT ?
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.selectByConditionDepotHead - ==> Parameters: 其它(String), 采购订单(String), 2025-04-24 00:00:00(String), 2025-07-24 23:59:59(String), 10(Integer)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.selectByConditionDepotHead - <== Total: 7
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.getFinishDepositByNumberList - ==> Preparing: SELECT dh.link_number number, ifnull(sum(dh.deposit), 0) finishDeposit FROM jsh_depot_head dh WHERE dh.tenant_id = 63 AND 1 = 1 AND dh.link_number IN (?, ?, ?, ?, ?, ?, ?) AND ifnull(dh.delete_flag, '0') != '1' GROUP BY dh.link_number
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.getFinishDepositByNumberList - ==> Parameters: CGDD00000000745(String), CGDD00000000743(String), CGDD00000000736(String), CGDD00000000732(String), CGDD00000000731(String), CGDD00000000729(String), CGDD00000000728(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.getFinishDepositByNumberList - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.AccountHeadMapperEx.getFinancialBillNoByBillIdList - ==> Preparing: SELECT ai.bill_id FROM jsh_account_head ah LEFT JOIN jsh_account_item ai ON ai.tenant_id = 63 AND ah.id = ai.header_id AND ifnull(ai.delete_flag, '0') != '1' WHERE ah.tenant_id = 63 AND 1 = 1 AND ai.bill_id IN (?, ?, ?, ?, ?, ?, ?) AND ifnull(ah.delete_flag, '0') != '1'
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.AccountHeadMapperEx.getFinancialBillNoByBillIdList - ==> Parameters: 328(Long), 325(Long), 318(Long), 314(Long), 313(Long), 312(Long), 311(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.AccountHeadMapperEx.getFinancialBillNoByBillIdList - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapper.selectByExample - ==> Preparing: SELECT 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, status, purchase_status, source, link_number, link_apply, tenant_id, delete_flag FROM jsh_depot_head WHERE jsh_depot_head.tenant_id = 63 AND (link_number IN (?, ?, ?, ?, ?, ?, ?) AND sub_type LIKE ? AND delete_flag <> ?)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapper.selectByExample - ==> Parameters: CGDD00000000745(String), CGDD00000000743(String), CGDD00000000736(String), CGDD00000000732(String), CGDD00000000731(String), CGDD00000000729(String), CGDD00000000728(String), 退货(String), 1(String)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapper.selectByExample - <== Total: 0
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.findMaterialsListMapByHeaderIdList - ==> Preparing: SELECT jsh_depot_item.header_id, GROUP_CONCAT(concat(jsh_material.name, ' ', ifnull(jsh_material.standard, ''), ' ', ifnull(jsh_material.model, ''), ' ', ifnull(jsh_material.color, ''))) AS materialsList FROM jsh_depot_item LEFT JOIN jsh_material ON jsh_material.tenant_id = 63 AND jsh_depot_item.material_id = jsh_material.Id AND ifnull(jsh_material.delete_Flag, '0') != '1' WHERE jsh_depot_item.tenant_id = 63 AND 1 = 1 AND jsh_depot_item.header_id IN (?, ?, ?, ?, ?, ?, ?) AND ifnull(jsh_depot_item.delete_flag, '0') != '1' GROUP BY jsh_depot_item.header_id
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.findMaterialsListMapByHeaderIdList - ==> Parameters: 328(Long), 325(Long), 318(Long), 314(Long), 313(Long), 312(Long), 311(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.findMaterialsListMapByHeaderIdList - <== Total: 7
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.getMaterialCountListByHeaderIdList - ==> Preparing: SELECT header_id, sum(oper_number) materialCount FROM jsh_depot_item WHERE jsh_depot_item.tenant_id = 63 AND 1 = 1 AND header_id IN (?, ?, ?, ?, ?, ?, ?) AND ifnull(delete_flag, '0') != '1' GROUP BY header_id
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.getMaterialCountListByHeaderIdList - ==> Parameters: 328(Long), 325(Long), 318(Long), 314(Long), 313(Long), 312(Long), 311(Long)
2025/07/24-14:54:11 DEBUG [http-nio-9999-exec-3] com.jsh.erp.datasource.mappers.DepotHeadMapperEx.getMaterialCountListByHeaderIdList - <== Total: 7