Commit c08a3239 authored by xiangjiaojunxp's avatar xiangjiaojunxp

物资详情模块

parent d4d3aca2
...@@ -5,7 +5,6 @@ import com.ruoyi.common.core.controller.BaseController; ...@@ -5,7 +5,6 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.ActSuppliesTemplate;
import com.ruoyi.system.domain.SysSupplies; import com.ruoyi.system.domain.SysSupplies;
import com.ruoyi.system.service.ISysSuppliesService; import com.ruoyi.system.service.ISysSuppliesService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -33,12 +32,11 @@ public class SysSuppliesController extends BaseController ...@@ -33,12 +32,11 @@ public class SysSuppliesController extends BaseController
*/ */
@PreAuthorize("@ss.hasPermi('system:supplies:list')") @PreAuthorize("@ss.hasPermi('system:supplies:list')")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo list(ActSuppliesTemplate sysSupplies) public TableDataInfo list(SysSupplies sysSupplies)
{ {
startPage(); startPage();
List<SysSupplies> list = iSysSuppliesService.list(); List<SysSupplies> list = iSysSuppliesService.list();
return getDataTable(list); return getDataTable(list);
} }
/** /**
* 保存物资管理列表 * 保存物资管理列表
......
...@@ -8,7 +8,7 @@ spring: ...@@ -8,7 +8,7 @@ spring:
master: master:
url: jdbc:mysql://localhost:3306/hbghgz_sc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:mysql://localhost:3306/hbghgz_sc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root username: root
password: 123456 password: root
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
......
...@@ -8,7 +8,7 @@ spring: ...@@ -8,7 +8,7 @@ spring:
master: master:
url: jdbc:mysql://localhost:3306/hbghgz_sc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true url: jdbc:mysql://localhost:3306/hbghgz_sc?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
username: root username: root
password: 123456 password: root
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <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" /> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<el-form ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="模板" prop="name" > <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 label="自设的模板名" value="使用空白模板"></el-option>-->
<el-option <el-option
v-for="item in depss" :key="item.id" :label="item.templateName" :value="item.id"> v-for="item in depss" :key="item.id" :label="item.templateName" :value="item.id">
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="规则" prop="rule"> <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 <el-option
v-for="iem in luckyrule" :key="iem.id" :label="iem.roleName" :value="iem.id"> v-for="iem in luckyrule" :key="iem.id" :label="iem.roleName" :value="iem.id">
</el-option> </el-option>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<el-button <el-button
type="warning" type="warning"
plain plain
icon="el-icon-download2" icon="el-icon-upload2"
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['ruoyi-myexcel:myexcel:export']" v-hasPermi="['ruoyi-myexcel:myexcel:export']"
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
:file-list="fileList" :file-list="fileList"
:disabled="disableNextButton" :disabled="disableNextButton"
> >
<el-button plain size="mini" icon="el-icon-upload" type="primary" :disabled="disableNextButton" >导入</el-button> <el-button plain size="mini" icon="el-icon-download" type="primary" :disabled="disableNextButton" >导入</el-button>
</el-upload> </el-upload>
</el-col> </el-col>
</el-row> </el-row>
...@@ -60,15 +60,16 @@ ...@@ -60,15 +60,16 @@
<script> <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 luckysheet from 'luckysheet'*/
import LuckyExcel from 'luckyexcel' import LuckyExcel from 'luckyexcel'
//导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用! //导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
import { exportExcel } from '../../../../public/exportExcel'; import { exportExcel } from '../../../../public/exportExcel';
let fileName="新建XLSX工作表"; //定义表名
var fileName="新建XLSX工作表"; //定义表名
var rule=[];
export default { export default {
name: "Mymodule", name: "Mymodule",
data() { data() {
...@@ -88,7 +89,7 @@ export default { ...@@ -88,7 +89,7 @@ export default {
form: {}, form: {},
// 查询参数 // 查询参数
queryParams: { queryParams: {
status : 0 status:0
}, },
}; };
}, },
...@@ -112,6 +113,8 @@ export default { ...@@ -112,6 +113,8 @@ export default {
}, },
/** 下拉选和页面luckysheet绑定 */ /** 下拉选和页面luckysheet绑定 */
handleOptionChange() { handleOptionChange() {
this.selectedRule='';
this.disableNextButton = this.selectedRule === '';
//根据选中的下拉选项值获取相应的信息 //根据选中的下拉选项值获取相应的信息
getSuppliesTemplate(this.selectedOption).then(response => { getSuppliesTemplate(this.selectedOption).then(response => {
const sysSupplies = response.rows; const sysSupplies = response.rows;
...@@ -122,7 +125,8 @@ export default { ...@@ -122,7 +125,8 @@ export default {
roleList(this.selectedOption).then(response => { roleList(this.selectedOption).then(response => {
this.luckyrule = response.rows; this.luckyrule = response.rows;
}); });
fileName= sysSupplies.name; let suffixArr = sysSupplies[0].templateName.split('.');
fileName = suffixArr[0];
//luckysheet.destroy() //luckysheet.destroy()
luckysheet.create({ luckysheet.create({
container: "luckysheet", // Luckysheet 的容器元素 ID container: "luckysheet", // Luckysheet 的容器元素 ID
...@@ -143,6 +147,9 @@ export default { ...@@ -143,6 +147,9 @@ export default {
return ; // 如果按钮被禁用,提前返回,避免执行下一步操作 return ; // 如果按钮被禁用,提前返回,避免执行下一步操作
} }
this.disableNextButton = this.selectedRule === ''; this.disableNextButton = this.selectedRule === '';
roleListid(this.selectedRule).then(response => {
rule=response.rows;
});
}, },
/** 回车事件和保存提交绑定 */ /** 回车事件和保存提交绑定 */
...@@ -226,7 +233,6 @@ export default { ...@@ -226,7 +233,6 @@ export default {
/** 导入事件*/ /** 导入事件*/
handleFileChange(evt) { handleFileChange(evt) {
var id=this.selectedRule;
if (this.disableNextButton) { if (this.disableNextButton) {
this.$message.warning("请先选择模板再进行导入!"); this.$message.warning("请先选择模板再进行导入!");
return false; // 如果按钮被禁用,提前返回,避免执行下一步操作 return false; // 如果按钮被禁用,提前返回,避免执行下一步操作
...@@ -236,7 +242,7 @@ export default { ...@@ -236,7 +242,7 @@ export default {
suffix = suffixArr[suffixArr.length - 1] suffix = suffixArr[suffixArr.length - 1]
if (suffix !== 'xlsx') { if (suffix !== 'xlsx') {
this.$message({ this.$message({
message: "上传格式不正确,请上传xls或者xlsx格式", message: "上传格式不正确,请上传xlsx格式文件",
type: "warning"}); type: "warning"});
return return
} }
...@@ -252,56 +258,22 @@ export default { ...@@ -252,56 +258,22 @@ export default {
}); });
return return
} }
/*roleListid(id).then(response => { console.log("导入数据的规则是:"+rule);
var sysRules = JSON.parse(response.rows[0].detailContent); //获取物料转换的规则
let sysRulez = JSON.parse(rule[0].detailContent);
for (var i = 0; i < sysRules.length; i++) { //获取物料转换的sheet表
let value; let data=window.luckysheet.transToData(exportJson.sheets[sysRulez[0].se].celldata);
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);
let map=new Map(); let map=new Map();
//let key_i=data[sysRulez[0].re][sysRulez[0].ce].m;
let key_i; let key_i=sysRulez[0].ce;
let value_1; //获取物料转换的数据
let value_2; let value=[];
let value_3; let sysRules = JSON.parse(rule[1].detailContent);
for(let i=0;i<data[0].length;i++){ for (let i=0;i<sysRules.length;i++){
if(data[1][i].v=='类别名称'){ //value.push(data[sysRules[i].re][sysRules[i].ce].m);
key_i=i; value.push(sysRules[i].ce);
}
if(data[1][i].v=='实出数量'){
value_1=i;
} }
if(data[1][i].v=='不含税单价'){ console.log("value的值为:"+value);
value_2=i;
}
if(data[1][i].v=='含税金额'){
value_3=i;
break;
}
}
debugger
let smallMat=[]; let smallMat=[];
for(let i=2;i<data.length;i++){ for(let i=2;i<data.length;i++){
if(data[i][key_i]!=null){ if(data[i][key_i]!=null){
...@@ -313,103 +285,60 @@ export default { ...@@ -313,103 +285,60 @@ export default {
} }
console.log(smallMat); console.log(smallMat);
materialConvert(smallMat).then(response => { materialConvert(smallMat).then(response => {
debugger
let array = response.rows; let array = response.rows;
}); console.log(array);
/*window.luckysheet.setCellValue(2,5,{
"fa": "0.00",
"t": "g"
})*/
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"}) //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){ if(data[i][key_i]!=null){
let a =parseFloat(data[i][value_1].v); for(let j=0;j<value.length;j++) {
let b =parseFloat(data[i][value_2].v); let a = parseFloat(data[i][value[j]].v);
let c =data[i][value_3].v; values.push(a);
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);
} }
}else{ }else{
break; 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); console.log(map);
value_1=luckysheet.find("实出数量")[0].column; let rowws;
value_2= luckysheet.find("不含税单价")[0].column; for(let i=0;i<sysRules.length;i++){
value_3 =luckysheet.find("含税金额")[0].column;
var rowws;
map.forEach((value, key) => { map.forEach((value, key) => {
rowws=luckysheet.find(key)[0].row; rowws=luckysheet.find(key)[0].row;
luckysheet.setCellValue(rowws, value_1,value[0]); luckysheet.setCellValue(rowws, sysRules[i].ct,value[i]);
luckysheet.setCellValue(rowws, value_2,value[1]); luckysheet.setCellValue(rowws, sysRules[i].ct,{"ct": {
luckysheet.setCellValue(rowws, value_3,value[2]); "fa": "General",
"t": "n"
}});
});
}
}).catch(() => {
// 处理错误逻辑,这里是一个空的错误处理函数
console.log("走到这了,物料转换后续处理出问题了!!");
this.$message.error('文件导入失败!发生未知错误,请重试!!');
}); });
debugger
console.log(rowws);
debugger
//切换到想要的sheet //切换到想要的sheet
luckysheet.setSheetActive(0); 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() { handleExport: debounce(function() {
// 处理点击事件 // 处理点击事件
exportExcel(luckysheet.getAllSheets(), fileName) exportExcel(luckysheet.getAllSheets(),fileName)
}, 500), // 设置延迟时间,单位为毫秒 }, 500), // 设置延迟时间,单位为毫秒
} }
// 配置项111 // 配置项111
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment