Commit cef08f59 authored by hehongwei's avatar hehongwei

Merge branch 'master' of http://192.168.111.222:3000/hehongwei/klck

# Conflicts:
#	ruoyi-ui/src/views/system/supplies/index.vue
parents 61e87f23 3b8d6016
......@@ -3,6 +3,7 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
# master:
......@@ -59,3 +60,4 @@ spring:
wall:
config:
multi-statement-allow: true
......@@ -6,7 +6,7 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:mysql://192.168.111.222:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
url: jdbc:mysql://192.168.111.222:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: password
# 从库数据源
......
......@@ -102,7 +102,7 @@ public class ActClassificationController extends BaseController
/**
* 删除分配信息
*/
@PreAuthorize("@ss.hasPermi('ActClassification:ActClassification:remove')")
@PreAuthorize("@ss.hasPermi('ActClassification :ActClassification:remove')")
@Log(title = "分配信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
......@@ -142,10 +142,11 @@ public class ActClassificationController extends BaseController
actClassificationService.setDisable(id,status);
if(status > 1){
if (status > 1 ){
return AjaxResult.error(ServiceCode.ERR_CODE+"","禁用失败");
}else {
return AjaxResult.success(ServiceCode.OK+"","禁用成功");
}
return AjaxResult.success("200","禁用成功");
}
......
......@@ -150,16 +150,18 @@ public class ActSuppliesController extends BaseController
* 禁用物料总分类管理
*/
@PreAuthorize("@ss.hasPermi('Actsupplies:Actsupplies:Disable')")
@PutMapping("/{id}/Disable")
public AjaxResult setDisable(@PathVariable("id") Long id, @RequestParam("status") Integer status) {
if (actSuppliesService.find(id).size() > 0 || actSuppliesService.findId(id).size() > 0) {
}
actSuppliesService.setDisable(id, status);
if (status > 1) {
return AjaxResult.error(ServiceCode.ERR_CODE + "", "禁用失败");
}
return AjaxResult.success("200", "禁用成功");
if (status > 1){
return AjaxResult.error(ServiceCode.ERR_CODE+"","禁用失败");
}else {
return AjaxResult.success(ServiceCode.OK+"","禁用成功");
}
}
......
......@@ -160,7 +160,7 @@ public class ActSuppliesDetailsController extends BaseController
* 启用物料细分类管理
*/
@PreAuthorize("@ss.hasPermi('ActSuppliesDetails:ActSuppliesDetails:enable')")
@GetMapping("/{id}/enable")
@PutMapping("/{id}/enable")
public AjaxResult setEnable(@PathVariable("id") Long id, @RequestParam("status") Integer status)
{
......@@ -176,7 +176,7 @@ public class ActSuppliesDetailsController extends BaseController
* 禁用物料细分类管理
*/
@PreAuthorize("@ss.hasPermi('ActSuppliesDetails:ActSuppliesDetails:Disable')")
@GetMapping("/{id}/disable")
@PutMapping("/{id}/disable")
public AjaxResult setDisable(@PathVariable("id") Long id, @RequestParam("status") Integer status)
{
......
......@@ -38,7 +38,7 @@ public class ActClassification extends BaseEntity
/** 状态 */
@Excel(name = "状态",readConverterExp="0=启用,1=禁用")
private String status;
private Integer status;
public void setId(Long id)
{
......@@ -67,12 +67,12 @@ public class ActClassification extends BaseEntity
{
return pid;
}
public void setStatus(String status)
public void setStatus(Integer status)
{
this.status = status;
}
public String getStatus()
public Integer getStatus()
{
return status;
}
......
......@@ -39,13 +39,13 @@
</select>
<update id="setEnable" parameterType="java.util.Map">
UPDATE ActClassification
UPDATE act_classification
SET status = 0
WHERE id = #{id}
</update>
<update id="setDisable" parameterType="java.util.Map">
UPDATE ActClassification
UPDATE act_classification
SET status = 1
WHERE id = #{id}
</update>
......
......@@ -7,6 +7,7 @@ export function listActClassification(query) {
method: 'get',
params: query
})
}
//查询上级ID
......
......@@ -70,14 +70,14 @@ export function exportActSuppliesDetails(query) {
//启用
export function toggleEnable(id) {
return request({
url: `/Actsupplies/Actsupplies/${id}/enable?status=0`,
url: `/ActSuppliesDetails/ActSuppliesDetails/${id}/enable?status=0`,
method: 'put',
})
}
//禁用
export function toggleDisable(id) {
return request({
url: `/Actsupplies/Actsupplies/${id}/disable?status=1`,
url: `/ActSuppliesDetails/ActSuppliesDetails/${id}/disable?status=1`,
method: 'put',
})
}
......@@ -52,20 +52,18 @@ export function delSupplies(id) {
}
//启用
export function toggleEnable(id) {
export function toggleEnable(id) {
return request({
url: '/Actsupplies/Actsupplies/enable/' +id,
method: 'get',
url: `/Actsupplies/Actsupplies/${id}/enable?status=0`,
method: 'put',
})
}
}
//禁用
export function toggleDisable(id) {
return request({
url: '/Actsupplies/Actsupplies/disable/' +id,
method: 'get',
})
return request({
url: `/Actsupplies/Actsupplies/${id}/Disable?status=1`,
method: 'put',
})
}
export function exportSupplies(query) {
......
......@@ -205,7 +205,7 @@ export default {
pageSize: 10,
name: null,
pid: null,
status: null,
status: 0,
},
// 表单参数
form: {},
......@@ -231,6 +231,7 @@ export default {
toggleEnable(ActClassification.id).then((response) =>{
if(response.code === 200){
let message = '操作成功,已经将【' + ActClassification.name +'】的状态改为【'+ enableText[ActClassification.status] +'】 !';
this.$message({
message: message,
......@@ -250,7 +251,7 @@ export default {
});
}else {
this.getList();
this.$message.error(response.code);
this.$message.error(response.message);
}
});
}
......
......@@ -382,14 +382,14 @@ export default {
});
}else {
toggleDisable(actSuppliesDetails.id).then((response) =>{
if(response.msg === "200"){
if(response.code === 200){
let message = '操作成功,已经将【' + actSuppliesDetails.detailsName +'】的状态改为【'+ enableText[actSuppliesDetails.status] +'】 !';
this.$message({
message: message,
type:'error'
});
}else {
this.$message.error(response.msg);
this.$message.error(response.message);
}
});
}
......
......@@ -236,7 +236,7 @@
</template>
<script>
import { listSupplies, toggleEnable,toggleDisable,getSupplies, delSupplies, addSupplies, updateSupplies, exportSupplies ,getLevel } from "@/api/Actsupplies/Actsupplies";
import { listSupplies,toggleEnable,toggleDisable,getSupplies, delSupplies, addSupplies, updateSupplies, exportSupplies ,getLevel } from "@/api/Actsupplies/Actsupplies";
import request from "@/utils/request";
export default {
......@@ -374,6 +374,7 @@ export default {
// const pageNumber = this.queryParams.pageNum || 1;
return index + 1;
},
/**启用 */
toggleEnable(actSupplies){
console.log('你点击了【' + actSupplies.suppliesName+'】的开关控件,当前开关值:' + actSupplies.status);
......@@ -389,29 +390,28 @@ export default {
}else {
this.$message.error(response.message);
}
});
}else {
toggleDisable(actSupplies.id).then((response) =>{
if(response.msg === "200"){
let message = '操作成功,已经将【' + actSupplies.suppliesName +'】的状态改为【'+ enableText[actSupplies.status] +'】 !';
this.$message({
if(response.code === 200){
let message = '操作成功,已经将【' + actSupplies.suppliesName +'】的状态改为【'+ enableText[actSupplies.status] +'】 !';
this.$message({
message: message,
type:'error'
});
}else {
this.getList();
this.$message.error(response.msg);
this.$message.error(response.message);
}
});
}
},
/** 查询上级关联关系*/
fetchOptions() {
......@@ -430,9 +430,7 @@ export default {
}
}
});
},
/** 查询物料总分类管理列表 */
getList() {
this.indexMethod(0);
......
<template>
<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" filterable placeholder="请选择您要查看的模板">
<!-- <el-option label="自设的模板名" value="使用空白模板"></el-option>-->
<el-option
v-for="item in depss" :key="item.id" :label="item.templateName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="规则" prop="roleid">
<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>
</el-select>
</el-form-item>
<el-form-item label="时间" prop="date">
<el-date-picker
@change="handledateChange"
v-model="date"
type="month"
placeholder="选择月">
</el-date-picker>
</el-form-item>
<el-form-item label="所属矿区" prop="mining">
<el-select v-model="mining" placeholder="请选择矿区" @change="handleminingChange">
<el-option label="东欢坨矿" :value="1"></el-option>
<el-option label="范矿" :value="2"></el-option>
<el-option label="林西矿" :value="3"></el-option>
<el-option label="吕矿" :value="4"></el-option>
<el-option label="钱家营矿" :value="5"></el-option>
<el-option label="唐山矿" :value="6"></el-option>
<el-option label="云飞矿" :value="7"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-upload2"
size="mini"
@click="handleExport"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-upload
type="file"
name="file"
ref="upload"
:before-upload="handleFileChange"
action=''
accept='.xlsx'
:limit="1"
:file-list="fileList"
:disabled="disableNextButton"
:show-file-list=false
>
<el-button plain size="mini" icon="el-icon-download" type="primary" :disabled="disableNextButton" @click="rulesdate">导入</el-button>
</el-upload>
</el-col>
</el-row>
<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" filterable placeholder="请选择您要查看的模板">
<!-- <el-option label="自设的模板名" value="使用空白模板"></el-option>-->
<el-option
v-for="item in depss" :key="item.id" :label="item.templateName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="规则" prop="roleid">
<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>
</el-select>
</el-form-item>
<el-form-item label="时间" prop="date">
<el-date-picker
@change="handledateChange"
v-model="date"
type="month"
placeholder="选择月">
</el-date-picker>
</el-form-item>
<el-form-item label="所属矿区" prop="mining">
<el-select v-model="mining" placeholder="请选择矿区" @change="handleminingChange">
<el-option label="东欢坨矿" :value="1"></el-option>
<el-option label="范矿" :value="2"></el-option>
<el-option label="林西矿" :value="3"></el-option>
<el-option label="吕矿" :value="4"></el-option>
<el-option label="钱家营矿" :value="5"></el-option>
<el-option label="唐山矿" :value="6"></el-option>
<el-option label="宏丰公司矿业" :value="7"></el-option>
<el-option label="云飞公司矿业" :value="8"></el-option>
<el-option label="单侯煤矿" :value="9"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-upload2"
size="mini"
@click="handleExport"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-upload
type="file"
name="file"
ref="upload"
:before-upload="handleFileChange"
action=''
accept='.xlsx'
:limit="1"
:file-list="fileList"
:disabled="disableNextButton"
:show-file-list=false
>
<el-button plain size="mini" icon="el-icon-download" type="primary" :disabled="disableNextButton" @click="rulesdate">导入</el-button>
</el-upload>
</el-col>
</el-row>
<!-- luckysheet容器 -->
<div
id="luckysheet"
......@@ -132,7 +134,74 @@ export default {
mining : ""
},
historyRole:[],
fromimport: {
hId : "",
hDate : null,
mining : "",
a1 : "",
a2 : "",
a3 : "",
a4 : "",
a5 : "",
a6 : "",
a7 : "",
a8 : "",
a9 : "",
a10 : "",
a11 : "",
a12 : "",
a13 : "",
a14 : "",
a15 : "",
a16 : "",
a17 : "",
a18 : "",
a19 : "",
a20 : "",
a21 : "",
a22 : "",
a23 : "",
a24 : "",
a25 : "",
a26 : "",
a27 : "",
a28 : "",
a29 : "",
a30 : "",
a31 : "",
a32 : "",
a33 : "",
a34 : "",
a35 : "",
a36 : "",
a37 : "",
a38 : "",
a39 : "",
a40 : "",
a41 : "",
a42 : "",
a43 : "",
a44 : "",
a45 : "",
a46 : "",
a47 : "",
a48 : "",
a49 : "",
a50 : "",
a51 : "",
a52 : "",
a53 : "",
a54 : "",
a55 : "",
a56 : "",
a57 : "",
a58 : "",
a59 : "",
a60 : "",
a61 : "",
a62 : "",
a63 : "",
},
/*fromimport: {},*/
dfrom:{},
imp:{},
......@@ -307,8 +376,8 @@ export default {
"status": 1, //激活状态
"order": 0, //工作表的下标
"hide": 0,//是否隐藏
"row": 8, //行数
"column": 10, //列数
"row": 50, //行数
"column": 20, //列数
"defaultRowHeight": 19, //自定义行高
"defaultColWidth": 73, //自定义列宽
"celldata": [
......@@ -459,22 +528,22 @@ export default {
}).then(async ()=>{
this.showMask = true;
//将导入数据替换保存
LuckyExcel.transformExcelToLucky(evt, exportJson => {
this.summary(exportJson)
.then(async() => {
this.submit(exportJson);
})
.catch(error => {
this.$message({
message: error.message,
type: "error"
});
})
.finally(() => {
// 导入完成后关闭遮罩层
this.showMask = false;
LuckyExcel.transformExcelToLucky(evt, exportJson => {
this.summary(exportJson)
.then(async() => {
this.submit(exportJson);
})
.catch(error => {
this.$message({
message: error.message,
type: "error"
});
})
.finally(() => {
// 导入完成后关闭遮罩层
this.showMask = false;
});
});
}).catch(() => {
// 处理错误逻辑,这里是一个空的错误处理函数
......@@ -487,23 +556,23 @@ export default {
}else{
this.showMask = true;
LuckyExcel.transformExcelToLucky(evt, exportJson => {
this.summary(exportJson)
.then(async() => {
this.submit(exportJson);
})
.catch(error => {
this.$message({
message: error.message,
type: "error"
});
})
.finally(() => {
// 导入完成后关闭遮罩层
this.showMask = false;
LuckyExcel.transformExcelToLucky(evt, exportJson => {
this.summary(exportJson)
.then(async() => {
this.submit(exportJson);
})
.catch(error => {
this.$message({
message: error.message,
type: "error"
});
});
})
.finally(() => {
// 导入完成后关闭遮罩层
this.showMask = false;
});
});
}
......@@ -517,7 +586,7 @@ export default {
let sysConver;
let value=[];
let data;
//获取规则 sysRulez是物料转换 sysRules是数据汇总规则
//获取规则 sysRulez是物料转换 sysRules是数据汇总规则 13
for(let i=0;i<rule.length;i++){
if (rule[i].convertStatus==1){
sysRulez = JSON.parse(rule[i].detailContent);
......@@ -529,9 +598,6 @@ export default {
sysRules = JSON.parse(rule[i].detailContent);
}
}
if (rule[i].convertStatus==6){
this.historyRole = rule[i].detailContent;
}
}
try {
......@@ -601,79 +667,79 @@ export default {
if (allNull ) {
throw new Error("导入失败,导入文件错误,所选文件与模板规则不匹");
}
materialConvert(smallMat)
.then(response => {
let array = response.rows;
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for (let i = parseFloat(sysRulez[0].re) + 1; i < data.length; i++) {
let values = [];
if (data[i][13] != null && departments[i - 1] === key && data[i][key_i] != null) {
for (let j = 0; j < value.length; j++) {
try{
let a = parseFloat(data[i][value[j]].v);
values.push(a);
}catch (err){
throw new Error("导入失败,导入文件不匹");
}
materialConvert(smallMat)
.then(response => {
let array = response.rows;
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for (let i = parseFloat(sysRulez[0].re) + 1; i < data.length; i++) {
let values = [];
if (data[i][13] != null && departments[i - 1] === key && data[i][key_i] != null) {
for (let j = 0; j < value.length; j++) {
try{
let a = parseFloat(data[i][value[j]].v);
values.push(a);
}catch (err){
throw new Error("导入失败,导入文件不匹");
}
}
//插入多个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));
}
//插入多个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);
}
}
map.set(key, values);
} else {
map.set(key, values);
}
}
}
//循环得到汇总结果
//循环得到汇总结果
if (map.size === 0) {
throw new Error("导入失败,导入文件错误");
}
let cells;
let warn;
let rowss = luckysheet.find(key);
if (rowss.length != 0) {
for (let i = 0; i < sysRules.length; i++) {
map.forEach((value, key) => {
let searchResult = luckysheet.find(key);
if (searchResult.length != 0 && key != null) {
cells = searchResult[0].column;
luckysheet.setCellValue(rowss[0].row, cells, value[i]);
luckysheet.setCellValue(rowss[0].row, cells, {
"ct": {
"fa": "General",
"t": "n"
if (map.size === 0) {
throw new Error("导入失败,导入文件错误");
}
let cells;
let warn;
let rowss = luckysheet.find(key);
if (rowss.length != 0) {
for (let i = 0; i < sysRules.length; i++) {
map.forEach((value, key) => {
let searchResult = luckysheet.find(key);
if (searchResult.length != 0 && key != null) {
cells = searchResult[0].column;
luckysheet.setCellValue(rowss[0].row, cells, value[i]);
luckysheet.setCellValue(rowss[0].row, cells, {
"ct": {
"fa": "General",
"t": "n"
}
});
}else{
warn++;
}
});
}else{
warn++;
}
});
}
}
if (warn / sysRules.length === map.size) {
throw new Error("导入文件与所选模板规则不匹配");
} else if (warn > 0) {
this.$message({
message: "还有"+warn/sysRules.length+"条大类未能匹配到",
type: "warning"});
}
resolve(response.rows);
innerResolve(); // 标记当前异步任务完成
}
if (warn / sysRules.length === map.size) {
throw new Error("导入文件与所选模板规则不匹配");
} else if (warn > 0) {
this.$message({
message: "还有"+warn/sysRules.length+"条大类未能匹配到",
type: "warning"});
}
resolve(response.rows);
innerResolve(); // 标记当前异步任务完成
}).catch(Error => {
}).catch(Error => {
//必须加,不能删除
innerReject(Error); // 异步请求出错
});
//必须加,不能删除
innerReject(Error); // 异步请求出错
});
}));
}
}
......@@ -1012,7 +1078,7 @@ export default {
}));
}
break;
//李志昊
//OK
case 7: {
let map = new Map();
let smallMat = [];
......@@ -1080,52 +1146,383 @@ export default {
}
this.NewSixList=SixList*/
let SixMateriel=[];
let MaterielCode=[];
let NewMarterielCode=[];
let SixList=[];
let newSmasll =smallMat;
SixMateriel=response.rows;
debugger
NewMarterielCode= sortArray(SixMateriel)
debugger
// //转化编码
let p=0;
for(var i=0;i<newSmasll.length;i++){
for (var j = 0; j < NewMarterielCode.length; j++) {
if(newSmasll[i] !== null){
if(newSmasll[i].slice(0,NewMarterielCode[j].code.length)==NewMarterielCode[j].code){
SixList[i]=NewMarterielCode[j].codes
p++
break
SixMateriel=response.rows;NewMarterielCode= sortArray(SixMateriel)
try {
// //转化编码
let p=0;
for(var i=0;i<newSmasll.length;i++){
for (var j = 0; j < NewMarterielCode.length; j++) {
if(newSmasll[i] !== null){
if (NewMarterielCode[j] && NewMarterielCode[j].code && newSmasll[i].slice(0, NewMarterielCode[j].code.length) == NewMarterielCode[j].code) {
SixList[i] = NewMarterielCode[j].codes;
p++;
break;
} else {
if (NewMarterielCode[j] && NewMarterielCode[j].code) { // 判断是否存在并具有code属性
SixList[i] = '11';
p++;
}
}
}
}
}
}catch(err){
//throw new Error("导入失败,转换编码运行错误,请检查对应规则");
}
var warn1 = 0,warn2 = 0;
for (let i = parseFloat(sysRulez[0].re) + 1, k = 0; i < data.length; i++, k++) {
let values = [];
if (data[i][key_i] && data[i][key_i] != null) {
for (let j = 0; j < value.length; j++) {
try {
if(data[i][value[j]] && data[i][value[j]]!=null){
let a = parseFloat(data[i][value[j]].v);
values.push(a);
}else{
warn1++;
}
} catch (err) {
this.$message({
message: "导入失败,导入文件错误,请自己检查导入表",
type: "error"
});
innerReject(error); // 异步请求出错
}
}
if(SixList[k]==undefined){
// warn1++; //如果为空,统计为undefined
}else{
if(deps[k]==undefined){
warn2++;
}else{
SixList[i]='11'
p++
let key = SixList[k] + '/' + deps[k];
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);
}
}
}
}
}
//循环得到汇总结果
if (map.size === 0) {
throw new Error("导入失败,导入文件错误");
}
//返回单元格第二行的数据
//let celn=luckysheet.getcellvalue(1);
//返回当前工作表第1列数据
//let cown=luckysheet.getcellvalue(null,0);
let config;
let bord = {
"rangeType": "range",
"borderType": "border-all",
"style": "1",
"color": "#000000",
"range": [{
"row": [0, 0],
"column": [0, 0]
}]
}
let warn = 0;
map.forEach((value, key) => {
let rowws;
const suffixArr = key.split('/'), mat = suffixArr[0], depp = suffixArr[1];
//返回当前工作表第1列数据
let cown=luckysheet.getcellvalue(null,0);
for(let i=0;i<cown.length;i++){
if(cown[i]==null){
continue;
}
if(cown[i].v==undefined){
continue;
}
if(cown[i].v==mat){
rowws=i;
break;
}
}
//let searchResult = luckysheet.find(mat,{isWholeWord:true});
if (rowws != undefined) {
//rowws = searchResult[0].row;
luckysheet.insertRow(rowws + 1);
let vll1 = luckysheet.getCellValue(rowws, sysRulez[0].ct);
luckysheet.setCellValue(rowws + 1, sysRulez[0].ct, {
"ct": {
"fa": "@",
"t": "n"
}
});
luckysheet.setCellValue(rowws + 1, sysRulez[0].ct, vll1);
let vll2 = luckysheet.getCellValue(rowws, parseInt(sysRulez[0].ct) + 1);
luckysheet.setCellValue(rowws + 1, parseInt(sysRulez[0].ct) + 1, vll2);
//输出部门数量金额
luckysheet.setCellValue(rowws + 1, sysRulez[1].ct, depp);
for (let i = 0; i < sysRules.length; i++) {
luckysheet.setCellValue(rowws + 1, sysRules[i].ct, value[i]);
//修改单元格样式
/*luckysheet.setCellValue(rowws+g, sysRules[i].ct, {
"ct": {
"fa": "General",
"t": "n"
}
});*/
}
//输出单价
luckysheet.setCellValue(rowws + 1, parseInt(sysRules[0].ct) + 1, value[1] / value[0]);
//修改单价样式
/*luckysheet.setCellValue(rowws+g,parseInt(sysRules[0].ct)+1,{
"ct": {
"fa": "0.0000",
"t": "n"
}
});*/
config = luckysheet.getConfig(0);
bord.range[0].row = [rowws + 1, rowws + 1];
bord.range[0].column = [0, parseInt(sysRules[sysRules.length - 1].ct)];
config.borderInfo.push(bord);
luckysheet.setConfig(config);
modify = true;
}else{
warn++;
}
});
if (warn === map.size) {
throw new Error("导入文件与所选模板规则不匹配");
}else if (warn > 0) {
this.$message({
message: "还有" + warn + "条大类没匹配到,请仔细检查导入表",
type: "warning"
});
}
if (warn1 > 0) {
if (warn2 > 0) {
this.$message({
message: "" + warn1 + "条数据的编码不存在和" + warn2 + "条数据的部门不存在,请仔细检查导入表",
type: "warning"
});
}else{
this.$message({
message: "" + warn1 + "条数据的编码不存在,请仔细检查导入表",
type: "warning"
});
}
} else if (warn2 > 0) {
this.$message({
message: "" + warn2 + "条数据的部门不存在,请仔细检查导入表",
type: "warning"
});
}
// 记录结束时间
const endTime = new Date().getTime();
// 计算执行时间(以毫秒为单位)
const executionTime = endTime - startTime;
// 输出执行时间
resolve(response.rows);
innerResolve(); // 标记当前异步任务完成
/*let find1 = luckysheet.find("合计");
let number = parseInt(find1[0].row)-1;
luckysheet.setCellValue(find1[0].row, sysRules[sysRules.length-1].ct, "=SUM(F2:F"+number+")")*/
}).catch(Error => {
//必须加,不能删除
innerReject(Error); // 异步请求出错
});
}));
}
break;
//不能用版本
/*case 7: {
let map = new Map();
let smallMat = [];
let deps = [];
let t = 0;
try {
for (let i = parseFloat(sysRulez[0].re) + 1; i < data.length; i++) {
if (data[i][sysRulez[1].ce] != null && data[i][key_i] != null) {
let num = data[i][key_i].m;
let dep = data[i][sysRulez[1].ce].m;
smallMat.push({index:t,code:num});
deps.push(dep);
t++;
} else {
}
}
}catch(err){
throw new Error("导入失败,导入文件与模板规则不匹");
}
asyncTasks.push(
new Promise((innerResolve, innerReject) => {
const allNull = smallMat.every(item =>item===null);
if (allNull ) {
throw new Error("导入失败,导入文件错误,所选文件与模板规则不匹");
}
//一部分报表的数据
materialList().then( response => {
//六矿物料编码数据
let array = response.rows;
//有code的数据
//六矿六位编码
let newSix = [];
for (let i = 0; i < array.length; i++) {
if(array[i].code.length==6){
newSix.push(array[i]);
}
}
//六矿四位编码
let newFour = [];
for (let u = 0; u < array.length; u++) {
if(array[u].code.length==4){
newFour.push(array[u]);
}
}
//六矿二位编码
let newTwo = [];
for (let l = 0; l < array.length; l++) {
if(array[l].code.length==2){
newTwo.push(array[l]);
}
}
//转换六位
let a = [];
for (let h = 0; h < smallMat.length; h++) {
for (let s = 0; s < newSix.length; s++) {
if(smallMat[h].code.slice(0,6) == newSix[s].code){
smallMat[h].code = newSix[s].codes;
a.push(smallMat[h]);
}
}
}
let newSixList=SixList
//删除方法
const result = smallMat.filter(item => item.code.length <= 4).map(item =>({index:item.index,code:item.code}) );
let i = 0;
while (i < smallMat.length) {
if (smallMat[i].code.length <= 4) {
smallMat[i] = smallMat[smallMat.length - 1];
smallMat.length--;
} else {
i++;
}
}
//转换四位
let b = [];
for (let h = 0; h < smallMat.length; h++) {
for (let s = 0; s < newFour.length; s++) {
if(smallMat[h].code.slice(0,4) == newFour[s].code){
smallMat[h].code = newFour[s].codes;
b.push(smallMat[h]);
}
}
}
let uniqueB = [...new Set(b.map(obj => obj.index))].map(index => b.find(obj => obj.index === index));
//删除方法
const re = smallMat.filter(item => item.code.length <= 4).map(item =>({index:item.index,code:item.code}) );
let ii = 0;
while (ii < smallMat.length) {
if (smallMat[ii].code.length == 4) {
smallMat[ii] = smallMat[smallMat.length - 1];
smallMat.length--;
} else {
ii++;
}
}
//转换二位
let c = [];
for (let h = 0; h < smallMat.length; h++) {
for (let s = 0; s < newTwo.length; s++) {
if(smallMat[h].code.slice(0,2) == newTwo[s].code){
smallMat[h].code = newTwo[s].codes;
c.push(smallMat[h]);
}
}
}
//删除方法
const sult = smallMat.filter(item => item.code.length <= 4).map(item =>({index:item.index,code:item.code}) );
let iii = 0;
while (iii < smallMat.length) {
if (smallMat[iii].code.length <= 4) {
smallMat[iii] = smallMat[smallMat.length - 1];
smallMat.length--;
} else {
iii++;
}
}
//转换其他
for (let other = 0; other < smallMat.length; other++) {
if( smallMat[other].code.length == '10'){
smallMat[other].code = 11;
}
}
//合并
let newSmallMat = [...a,...uniqueB,...c,...smallMat];
//索引排序
function newSort(arr){
arr.sort((a,b) => a.index - b.index)
return arr;
}
let newSortArray = newSort(newSmallMat);
for (let i = parseFloat(sysRulez[0].re) + 1, k = 0; i < data.length; i++, k++) {
let values = [];
if (data[i][key_i] != null) {
for (let j = 0; j < value.length; j++) {
try {
try{
let a = parseFloat(data[i][value[j]].v);
values.push(a);
} catch (err) {
}catch (err){
this.$message({
message: "导入失败,导入文件不匹",
type: "error"
});
innerReject(error); // 异步请求出错
}
}
let key = SixList[k] + '/' + deps[k];
}
//插入多个value的值
//此方法只适用于一对一唯一值
/!*let index = smallMat.indexOf(data[i][key_i].m);
let key = array[index];*!/
let key = newSortArray[k].code + '/' + deps[k];
if (map.has(key)) {
let oldValues = map.get(key);
for (let i = 0; i < values.length; i++) {
......@@ -1138,8 +1535,8 @@ export default {
}
}
//循环得到汇总结果
if (map.size === 0) {
throw new Error("导入失败,导入文件错误");
}
......@@ -1147,6 +1544,7 @@ export default {
//let celn=luckysheet.getcellvalue(1);
//返回当前工作表第1列数据
//let cown=luckysheet.getcellvalue(null,0);
let rowws;
let config;
let bord = {
"rangeType": "range",
......@@ -1158,66 +1556,55 @@ export default {
"column": [0, 0]
}]
}
let warn = 0;
let warn=0;
map.forEach((value, key) => {
let rowws;
const suffixArr = key.split('/'), mat = suffixArr[0], depp = suffixArr[1];
//返回当前工作表第1列数据
let cown=luckysheet.getcellvalue(null,0);
for(let i=0;i<cown.length;i++){
if(cown[i]==null){
continue;
}
if(cown[i].v==undefined){
continue;
}
if(cown[i].v==mat){
rowws=i;
break;
}
}
//let searchResult = luckysheet.find(mat,{isWholeWord:true});
if (rowws != undefined) {
//rowws = searchResult[0].row;
let searchResult = luckysheet.find(mat);
if (searchResult.length != 0 && key != null) {
rowws = searchResult[0].row;
luckysheet.insertRow(rowws + 1);
let vll1 = luckysheet.getCellValue(rowws, sysRulez[0].ct);
luckysheet.setCellValue(rowws + 1, sysRulez[0].ct, {
let vll1=luckysheet.getCellValue(rowws,sysRulez[0].ct);
luckysheet.setCellValue(rowws+1, sysRulez[0].ct, {
"ct": {
"fa": "@",
"t": "n"
}
});
luckysheet.setCellValue(rowws + 1, sysRulez[0].ct, vll1);
let vll2 = luckysheet.getCellValue(rowws, parseInt(sysRulez[0].ct) + 1);
luckysheet.setCellValue(rowws + 1, parseInt(sysRulez[0].ct) + 1, vll2);
let vll2=luckysheet.getCellValue(rowws,parseInt(sysRulez[0].ct)+1);
luckysheet.setCellValue(rowws + 1, parseInt(sysRulez[0].ct)+1, vll2);
//输出部门数量金额
luckysheet.setCellValue(rowws + 1, sysRulez[1].ct, depp);
for (let i = 0; i < sysRules.length; i++) {
luckysheet.setCellValue(rowws + 1, sysRules[i].ct, value[i]);
//修改单元格样式
/*luckysheet.setCellValue(rowws+g, sysRules[i].ct, {
/!*luckysheet.setCellValue(rowws+g, sysRules[i].ct, {
"ct": {
"fa": "General",
"t": "n"
}
});*/
});*!/
}
//输出单价
luckysheet.setCellValue(rowws + 1, parseInt(sysRules[0].ct) + 1, value[1] / value[0]);
//修改单价样式
/*luckysheet.setCellValue(rowws+g,parseInt(sysRules[0].ct)+1,{
/!*luckysheet.setCellValue(rowws+g,parseInt(sysRules[0].ct)+1,{
"ct": {
"fa": "0.0000",
"t": "n"
}
});*/
});*!/
config = luckysheet.getConfig(0);
bord.range[0].row = [rowws + 1, rowws + 1];
bord.range[0].column = [0, parseInt(sysRules[sysRules.length - 1].ct)];
config.borderInfo.push(bord);
luckysheet.setConfig(config);
modify = true;
} else {
modify=true;
} else{
warn++;
}
});
......@@ -1225,47 +1612,44 @@ export default {
throw new Error("导入文件与所选模板规则不匹配");
} else if (warn > 0) {
this.$message({
message: "还有" + warn + "条大类未能匹配到",
type: "warning"
});
message: "还有"+warn+"条大类未能匹配到",
type: "warning"});
}
// 记录结束时间
const endTime = new Date().getTime();
const endTime = new Date();
// 计算执行时间(以毫秒为单位)
const executionTime = endTime - startTime;
// 输出执行时间
resolve(response.rows);
innerResolve(); // 标记当前异步任务完成
/*let find1 = luckysheet.find("合计");
/!*let find1 = luckysheet.find("合计");
let number = parseInt(find1[0].row)-1;
luckysheet.setCellValue(find1[0].row, sysRules[sysRules.length-1].ct, "=SUM(F2:F"+number+")")*/
luckysheet.setCellValue(find1[0].row, sysRules[sysRules.length-1].ct, "=SUM(F2:F"+number+")")*!/
}).catch(Error => {
//必须加,不能删除
innerReject(Error); // 异步请求出错
});
}));
}
break;
break;*/
default :
{
let map = new Map();
let smallMat = [];
try{
for (let i = parseFloat(sysRulez[0].re) + 1; i < data.length; i++) {
if (data[i][key_i] != null) {
let num = data[i][key_i].m;
smallMat.push(num);
} else {
smallMat.push(null);
for (let i = parseFloat(sysRulez[0].re) + 1; i < data.length; i++) {
if (data[i][key_i] != null) {
let num = data[i][key_i].m;
smallMat.push(num);
} else {
smallMat.push(null);
}
}
}
} catch(err){
throw new Error("导入失败,导入文件与模板规则不匹");
}
throw new Error("导入失败,导入文件与模板规则不匹");
}
asyncTasks.push(
new Promise((innerResolve, innerReject) => {
const allNull = smallMat.every(item =>item===null);
......@@ -1313,7 +1697,7 @@ export default {
for (let i = 0; i < sysRules.length; i++) {
map.forEach((value, key) => {
let searchResult;
searchResult= luckysheet.find(key);
searchResult= luckysheet.find(key);
if (searchResult!==undefined && searchResult.length !== 0 && key != null) {
rowws = searchResult[0].row;
luckysheet.setCellValue(rowws, sysRules[i].ct, value[i]);
......@@ -1339,7 +1723,7 @@ export default {
innerResolve(); // 标记当前异步任务完成
}).catch(Error => {
//必须加,不能删除
//必须加,不能删除
innerReject(Error); // 异步请求出错
});
}));
......@@ -1376,7 +1760,6 @@ export default {
this.dfrom.historyContent=str;
this.dfrom.identifyingCode=0;
this.dfrom.tylkStatus = 1;
this.dfrom.historyRole = this.historyRole;
let date = new Date(this.date);
......@@ -1430,7 +1813,6 @@ export default {
this.imp.mining = data[i].mining;
this.imp.actOperation2 = transToCellData;
list.push(this.imp);
}else {
......@@ -1443,8 +1825,7 @@ export default {
this.ssd.hDate = data[i].date;
this.ssd.mining = data[i].mining;
this.ssd.actOperation2 = transToCellData;
this.ssd.historyRole = data[i].historyRole;
debugger;
list1.push(this.ssd);
}
......
......@@ -28,7 +28,7 @@ module.exports = {
productionSourceMap: false,
// webpack-dev-server 相关配置
devServer: {
host: '0.0.0.0',
// host: '0.0.0.0',
port: port,
open: true,
proxy: {
......
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