Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
K
klck
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
位宇华
klck
Commits
c08a3239
Commit
c08a3239
authored
Jul 21, 2023
by
xiangjiaojunxp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
物资详情模块
parent
d4d3aca2
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
75 additions
and
148 deletions
+75
-148
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysSuppliesController.java
...om/ruoyi/web/controller/system/SysSuppliesController.java
+1
-3
ruoyi-admin/src/main/resources/application-dev.yml
ruoyi-admin/src/main/resources/application-dev.yml
+1
-1
ruoyi-admin/src/main/resources/application-druid.yml
ruoyi-admin/src/main/resources/application-druid.yml
+1
-1
ruoyi-admin/src/main/resources/logback.xml
ruoyi-admin/src/main/resources/logback.xml
+1
-1
ruoyi-ui/src/views/system/supplies/index.vue
ruoyi-ui/src/views/system/supplies/index.vue
+71
-142
No files found.
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysSuppliesController.java
View file @
c08a3239
...
...
@@ -5,7 +5,6 @@ import com.ruoyi.common.core.controller.BaseController;
import
com.ruoyi.common.core.domain.AjaxResult
;
import
com.ruoyi.common.core.page.TableDataInfo
;
import
com.ruoyi.common.enums.BusinessType
;
import
com.ruoyi.system.domain.ActSuppliesTemplate
;
import
com.ruoyi.system.domain.SysSupplies
;
import
com.ruoyi.system.service.ISysSuppliesService
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -33,12 +32,11 @@ public class SysSuppliesController extends BaseController
*/
@PreAuthorize
(
"@ss.hasPermi('system:supplies:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
ActSuppliesTemplate
sysSupplies
)
public
TableDataInfo
list
(
SysSupplies
sysSupplies
)
{
startPage
();
List
<
SysSupplies
>
list
=
iSysSuppliesService
.
list
();
return
getDataTable
(
list
);
}
/**
* 保存物资管理列表
...
...
ruoyi-admin/src/main/resources/application-dev.yml
View file @
c08a3239
...
...
@@ -8,7 +8,7 @@ spring:
master
:
url
:
jdbc:mysql://localhost:3306/hbghgz_sc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
123456
password
:
root
# 从库数据源
slave
:
# 从数据源开关/默认关闭
...
...
ruoyi-admin/src/main/resources/application-druid.yml
View file @
c08a3239
...
...
@@ -8,7 +8,7 @@ spring:
master
:
url
:
jdbc:mysql://localhost:3306/hbghgz_sc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
username
:
root
password
:
123456
password
:
root
# 从库数据源
slave
:
# 从数据源开关/默认关闭
...
...
ruoyi-admin/src/main/resources/logback.xml
View file @
c08a3239
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 -->
<property
name=
"log.path"
value=
"
H:/Project/java/klck/klck
/hbghgz/logs"
/>
<property
name=
"log.path"
value=
"
D:/develop/idea-workspace/klbsxt
/hbghgz/logs"
/>
<!-- 日志输出格式 -->
<property
name=
"log.pattern"
value=
"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"
/>
...
...
ruoyi-ui/src/views/system/supplies/index.vue
View file @
c08a3239
...
...
@@ -2,7 +2,7 @@
<div
class=
"app-container"
>
<el-form
ref=
"queryForm"
size=
"small"
:inline=
"true"
label-width=
"68px"
>
<el-form-item
label=
"模板"
prop=
"name"
>
<el-select
v-model=
"selectedOption"
ref=
"mySelect"
size=
"mini"
@
change=
"handleOptionChange"
placeholder=
"请选择您要查看的模板"
>
<el-select
v-model=
"selectedOption"
ref=
"mySelect"
size=
"mini"
@
change=
"handleOptionChange"
filterable
placeholder=
"请选择您要查看的模板"
>
<!--
<el-option
label=
"自设的模板名"
value=
"使用空白模板"
></el-option>
-->
<el-option
v-for=
"item in depss"
:key=
"item.id"
:label=
"item.templateName"
:value=
"item.id"
>
...
...
@@ -10,7 +10,7 @@
</el-select>
</el-form-item>
<el-form-item
label=
"规则"
prop=
"rule"
>
<el-select
v-model=
"selectedRule"
ref=
"mySelect"
size=
"mini"
@
change=
"handleRuleChange"
placeholder=
"请选择您要查看的规则"
>
<el-select
v-model=
"selectedRule"
ref=
"mySelect"
size=
"mini"
@
change=
"handleRuleChange"
filterable
placeholder=
"请选择您要查看的规则"
>
<el-option
v-for=
"iem in luckyrule"
:key=
"iem.id"
:label=
"iem.roleName"
:value=
"iem.id"
>
</el-option>
...
...
@@ -26,7 +26,7 @@
<el-button
type=
"warning"
plain
icon=
"el-icon-
down
load2"
icon=
"el-icon-
up
load2"
size=
"mini"
@
click=
"handleExport"
v-hasPermi=
"['ruoyi-myexcel:myexcel:export']"
...
...
@@ -43,7 +43,7 @@
:file-list=
"fileList"
:disabled=
"disableNextButton"
>
<el-button
plain
size=
"mini"
icon=
"el-icon-
up
load"
type=
"primary"
:disabled=
"disableNextButton"
>
导入
</el-button>
<el-button
plain
size=
"mini"
icon=
"el-icon-
down
load"
type=
"primary"
:disabled=
"disableNextButton"
>
导入
</el-button>
</el-upload>
</el-col>
</el-row>
...
...
@@ -60,15 +60,16 @@
<
script
>
import
{
getSuppliesTemplate
,
listSuppliesTemplate
,
roleList
,
roleListid
}
from
"
@/api/ruoyi-myLuckyexcel/myluckyexcel
"
;
import
{
getSuppliesTemplate
,
listSuppliesTemplate
,
roleList
,
materialConvert
,
roleListid
}
from
"
@/api/ruoyi-myLuckyexcel/myluckyexcel
"
;
/*import luckysheet from 'luckysheet'*/
import
LuckyExcel
from
'
luckyexcel
'
//导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
import
{
exportExcel
}
from
'
../../../../public/exportExcel
'
;
let
fileName
=
"
新建XLSX工作表
"
;
//定义表名
var
fileName
=
"
新建XLSX工作表
"
;
//定义表名
var
rule
=
[];
export
default
{
name
:
"
Mymodule
"
,
data
()
{
...
...
@@ -88,7 +89,7 @@ export default {
form
:
{},
// 查询参数
queryParams
:
{
status
:
0
status
:
0
},
};
},
...
...
@@ -112,6 +113,8 @@ export default {
},
/** 下拉选和页面luckysheet绑定 */
handleOptionChange
()
{
this
.
selectedRule
=
''
;
this
.
disableNextButton
=
this
.
selectedRule
===
''
;
//根据选中的下拉选项值获取相应的信息
getSuppliesTemplate
(
this
.
selectedOption
).
then
(
response
=>
{
const
sysSupplies
=
response
.
rows
;
...
...
@@ -122,7 +125,8 @@ export default {
roleList
(
this
.
selectedOption
).
then
(
response
=>
{
this
.
luckyrule
=
response
.
rows
;
});
fileName
=
sysSupplies
.
name
;
let
suffixArr
=
sysSupplies
[
0
].
templateName
.
split
(
'
.
'
);
fileName
=
suffixArr
[
0
];
//luckysheet.destroy()
luckysheet
.
create
({
container
:
"
luckysheet
"
,
// Luckysheet 的容器元素 ID
...
...
@@ -143,6 +147,9 @@ export default {
return
;
// 如果按钮被禁用,提前返回,避免执行下一步操作
}
this
.
disableNextButton
=
this
.
selectedRule
===
''
;
roleListid
(
this
.
selectedRule
).
then
(
response
=>
{
rule
=
response
.
rows
;
});
},
/** 回车事件和保存提交绑定 */
...
...
@@ -226,7 +233,6 @@ export default {
/** 导入事件*/
handleFileChange
(
evt
)
{
var
id
=
this
.
selectedRule
;
if
(
this
.
disableNextButton
)
{
this
.
$message
.
warning
(
"
请先选择模板再进行导入!
"
);
return
false
;
// 如果按钮被禁用,提前返回,避免执行下一步操作
...
...
@@ -236,7 +242,7 @@ export default {
suffix
=
suffixArr
[
suffixArr
.
length
-
1
]
if
(
suffix
!==
'
xlsx
'
)
{
this
.
$message
({
message
:
"
上传格式不正确,请上传xls
或者xlsx格式
"
,
message
:
"
上传格式不正确,请上传xls
x格式文件
"
,
type
:
"
warning
"
});
return
}
...
...
@@ -252,56 +258,22 @@ export default {
});
return
}
/*roleListid(id).then(response => {
var sysRules = JSON.parse(response.rows[0].detailContent);
for (var i = 0; i < sysRules.length; i++) {
let value;
var num = exportJson.sheets[sysRules[i].se].celldata.length;
for(var j=0;j<num;j++){
var c =exportJson.sheets[sysRules[i].se].celldata[j].c;
var r =exportJson.sheets[sysRules[i].se].celldata[j].r;
if(r === sysRules[i].re && c ===sysRules[i].ce ){
value=exportJson.sheets[sysRules[i].se].celldata[j].v.v;
console.log("value是"+value);
//切换到想要的sheet
luckysheet.setSheetActive(sysRules[i].st);
//将值放到指定位置
luckysheet.setCellValue(sysRules[i].rt, sysRules[i].ct,value);
}
}
}
// 切换到原页面
luckysheet.setSheetActive(0);
})*/
//将luckyExcel的celldata文件转为data文件
var
data
=
window
.
luckysheet
.
transToData
(
exportJson
.
sheets
[
0
].
celldata
);
console
.
log
(
"
导入数据的规则是:
"
+
rule
);
//获取物料转换的规则
let
sysRulez
=
JSON
.
parse
(
rule
[
0
].
detailContent
);
//获取物料转换的sheet表
let
data
=
window
.
luckysheet
.
transToData
(
exportJson
.
sheets
[
sysRulez
[
0
].
se
].
celldata
);
let
map
=
new
Map
();
let
key_i
;
let
value_1
;
let
value_2
;
let
value_3
;
for
(
let
i
=
0
;
i
<
data
[
0
].
length
;
i
++
){
if
(
data
[
1
][
i
].
v
==
'
类别名称
'
){
key_i
=
i
;
}
if
(
data
[
1
][
i
].
v
==
'
实出数量
'
){
value_1
=
i
;
//let key_i=data[sysRulez[0].re][sysRulez[0].ce].m;
let
key_i
=
sysRulez
[
0
].
ce
;
//获取物料转换的数据
let
value
=
[];
let
sysRules
=
JSON
.
parse
(
rule
[
1
].
detailContent
);
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
){
//value.push(data[sysRules[i].re][sysRules[i].ce].m);
value
.
push
(
sysRules
[
i
].
ce
);
}
if
(
data
[
1
][
i
].
v
==
'
不含税单价
'
){
value_2
=
i
;
}
if
(
data
[
1
][
i
].
v
==
'
含税金额
'
){
value_3
=
i
;
break
;
}
}
debugger
console
.
log
(
"
value的值为:
"
+
value
);
let
smallMat
=
[];
for
(
let
i
=
2
;
i
<
data
.
length
;
i
++
){
if
(
data
[
i
][
key_i
]
!=
null
){
...
...
@@ -313,103 +285,60 @@ export default {
}
console
.
log
(
smallMat
);
materialConvert
(
smallMat
).
then
(
response
=>
{
debugger
let
array
=
response
.
rows
;
});
/*window.luckysheet.setCellValue(2,5,{
"fa": "0.00",
"t": "g"
})*/
console
.
log
(
array
);
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for
(
let
i
=
2
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
2
;
i
<
data
.
length
;
i
++
)
{
let
values
=
[];
if
(
data
[
i
][
key_i
]
!=
null
){
let
a
=
parseFloat
(
data
[
i
][
value_1
].
v
);
let
b
=
parseFloat
(
data
[
i
][
value_2
].
v
);
let
c
=
data
[
i
][
value_3
].
v
;
let
values
=
[
a
,
b
,
c
];
if
(
map
.
has
(
data
[
i
][
key_i
].
v
)){
let
oldValues
=
map
.
get
(
data
[
i
][
key_i
].
v
);
values
[
0
]
=
parseFloat
(
parseFloat
(
values
[
0
]
+
oldValues
[
0
]).
toFixed
(
2
));
values
[
1
]
=
parseFloat
(
parseFloat
(
values
[
1
]
+
oldValues
[
1
]).
toFixed
(
6
));
values
[
2
]
=
parseFloat
(
parseFloat
(
values
[
2
]
+
oldValues
[
2
]).
toFixed
(
2
));
map
.
set
(
data
[
i
][
key_i
].
v
,
values
);
}
else
{
map
.
set
(
data
[
i
][
key_i
].
v
,
values
);
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
values
.
push
(
a
);
}
}
else
{
break
;
}
//插入多个value的值
let
index
=
smallMat
.
indexOf
(
data
[
i
][
key_i
].
m
);
let
key
=
array
[
index
];
if
(
map
.
has
(
key
))
{
let
oldValues
=
map
.
get
(
key
);
for
(
let
i
=
0
;
i
<
values
.
length
;
i
++
){
values
[
i
]
=
parseFloat
(
parseFloat
(
values
[
i
]
+
oldValues
[
i
]).
toFixed
(
2
));
}
map
.
set
(
key
,
values
);
}
else
{
map
.
set
(
key
,
values
);
}
}
//循环得到汇总结果
console
.
log
(
map
);
value_1
=
luckysheet
.
find
(
"
实出数量
"
)[
0
].
column
;
value_2
=
luckysheet
.
find
(
"
不含税单价
"
)[
0
].
column
;
value_3
=
luckysheet
.
find
(
"
含税金额
"
)[
0
].
column
;
var
rowws
;
let
rowws
;
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
){
map
.
forEach
((
value
,
key
)
=>
{
rowws
=
luckysheet
.
find
(
key
)[
0
].
row
;
luckysheet
.
setCellValue
(
rowws
,
value_1
,
value
[
0
]);
luckysheet
.
setCellValue
(
rowws
,
value_2
,
value
[
1
]);
luckysheet
.
setCellValue
(
rowws
,
value_3
,
value
[
2
]);
luckysheet
.
setCellValue
(
rowws
,
sysRules
[
i
].
ct
,
value
[
i
]);
luckysheet
.
setCellValue
(
rowws
,
sysRules
[
i
].
ct
,{
"
ct
"
:
{
"
fa
"
:
"
General
"
,
"
t
"
:
"
n
"
}});
});
}
}).
catch
(()
=>
{
// 处理错误逻辑,这里是一个空的错误处理函数
console
.
log
(
"
走到这了,物料转换后续处理出问题了!!
"
);
this
.
$message
.
error
(
'
文件导入失败!发生未知错误,请重试!!
'
);
});
debugger
console
.
log
(
rowws
);
debugger
//切换到想要的sheet
luckysheet
.
setSheetActive
(
0
);
//返回单元格第二行的数据
let
celn
=
luckysheet
.
getcellvalue
(
1
);
// //返回当前工作表第1列数据
// let r1,r2,r3,r4,r5,r6;
// let cown=luckysheet.getcellvalue(null,0);
// for(let i=0;i
<
cown
.
length
;
i
++
){
// if(cown[i].m==maps[0]){
// r1=i;
// }
// if(cown[i].m==maps[1]){
// r2=i;
// }
// if(cown[i].m==maps[2]){
// r3=i;
// }
// if(cown[i].m==maps[3]){
// r4=i;
// }
// if(cown[i].m==maps[4]){
// r5=i;
// }
// if(cown[i].m==maps[5]){
// r6=i;
// break;
// }
// }
// //将值放到指定位置
// let rowss=[];
// let valus=map.get(maps[0]);
// luckysheet.setCellValue(r1, value_1,valus[0]);
// luckysheet.setCellValue(r1, value_2,valus[0]);
// luckysheet.setCellValue(r1, value_3,valus[0]);
// for(let i=0;i
<
cown
.
length
;
i
++
){
//
// for(let j=0;j
<
maps
.
length
;
j
++
){
// if(cown[i].m==maps[j]){
// rowss.push(i);
// break;
// }
// }}
// debugger
// console.log(rowss);
})
},
/** 导出设置 */
handleExport
:
debounce
(
function
()
{
// 处理点击事件
exportExcel
(
luckysheet
.
getAllSheets
(),
fileName
)
exportExcel
(
luckysheet
.
getAllSheets
(),
fileName
)
},
500
),
// 设置延迟时间,单位为毫秒
}
// 配置项111
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment