Commit c6cf5960 authored by hehongwei's avatar hehongwei

前端转换修改;后端清洗修改

parent 10e24885
...@@ -95,6 +95,7 @@ spring: ...@@ -95,6 +95,7 @@ spring:
time-zone: GMT+8 time-zone: GMT+8
serialization: serialization:
write-dates-as-timestamps: false write-dates-as-timestamps: false
# token配置 # token配置
token: token:
# 令牌自定义标识 # 令牌自定义标识
......
...@@ -42,11 +42,11 @@ public class ActSuppliesCleaningRuleController extends BaseController ...@@ -42,11 +42,11 @@ public class ActSuppliesCleaningRuleController extends BaseController
* 获取所有历史数据 * 获取所有历史数据
*/ */
@PreAuthorize("@ss.hasPermi('system:cleaningrule:queryAllAcc')") @PreAuthorize("@ss.hasPermi('system:cleaningrule:queryAllAcc')")
@GetMapping("/queryAllAcc/{tylkStatus}") @PutMapping("/queryAllAcc")
public AjaxResult selectActSuppliesHistorydataAcc(@PathVariable("tylkStatus") Integer tylkStatus) public AjaxResult selectActSuppliesHistorydataAcc(@RequestBody ActSuppliesHistorydata actSuppliesHistorydata)
{ {
List<ActSuppliesHistorydata> s = actSuppliesHistorydataService.selectActSuppliesHistorydataAcc(tylkStatus); List<ActSuppliesHistorydata> s = actSuppliesHistorydataService.selectActSuppliesHistorydataAcc(actSuppliesHistorydata);
return AjaxResult.success(s); return AjaxResult.success(s);
} }
......
...@@ -123,6 +123,7 @@ public class ActSuppliesHistorydataController extends BaseController ...@@ -123,6 +123,7 @@ public class ActSuppliesHistorydataController extends BaseController
@PostMapping("/addInsertAccount") @PostMapping("/addInsertAccount")
public AjaxResult addInsertAccount(@RequestBody List<ActSuppliesHistorydata> actSuppliesHistorydata) public AjaxResult addInsertAccount(@RequestBody List<ActSuppliesHistorydata> actSuppliesHistorydata)
{ {
System.out.println(actSuppliesHistorydata);
actSuppliesHistorydataService.addInsertActSuppliesHistorydataAcc(actSuppliesHistorydata); actSuppliesHistorydataService.addInsertActSuppliesHistorydataAcc(actSuppliesHistorydata);
return toAjax(1); return toAjax(1);
} }
......
...@@ -96,7 +96,7 @@ public interface ActSuppliesHistorydataMapper ...@@ -96,7 +96,7 @@ public interface ActSuppliesHistorydataMapper
void updateActSuppliesHistorydataStatusByIdAcc(Long gethId); void updateActSuppliesHistorydataStatusByIdAcc(Long gethId);
List<ActSuppliesHistorydata> selectActSuppliesHistorydataAcc(Integer tylkStatus); List<ActSuppliesHistorydata> selectActSuppliesHistorydataAcc(ActSuppliesHistorydata actSuppliesHistorydata);
List<ActSuppliesHistorydata> selectActSuppliesHistorydataCopyList(ActSuppliesHistorydata actSuppliesHistorydata); List<ActSuppliesHistorydata> selectActSuppliesHistorydataCopyList(ActSuppliesHistorydata actSuppliesHistorydata);
......
...@@ -90,7 +90,7 @@ public interface IActSuppliesHistorydataService ...@@ -90,7 +90,7 @@ public interface IActSuppliesHistorydataService
void addInsertActSuppliesHistorydataAcc(List<ActSuppliesHistorydata> actSuppliesHistorydata); void addInsertActSuppliesHistorydataAcc(List<ActSuppliesHistorydata> actSuppliesHistorydata);
List<ActSuppliesHistorydata> selectActSuppliesHistorydataAcc(Integer tylkStatus); List<ActSuppliesHistorydata> selectActSuppliesHistorydataAcc(ActSuppliesHistorydata actSuppliesHistorydata);
List<ActSuppliesImportCleaningAcc> selectActSuppliesCleaningCopyAcc(Long id); List<ActSuppliesImportCleaningAcc> selectActSuppliesCleaningCopyAcc(Long id);
} }
...@@ -627,6 +627,12 @@ public class ActSuppliesHistorydataServiceImpl implements IActSuppliesHistorydat ...@@ -627,6 +627,12 @@ public class ActSuppliesHistorydataServiceImpl implements IActSuppliesHistorydat
@Transactional @Transactional
public void addInsertImportssAccounts(List<ActOperation1> actOperation2s) { public void addInsertImportssAccounts(List<ActOperation1> actOperation2s) {
Thread thread1 = new Thread(()->{
System.out.println("sssss");
});
Thread thread = new Thread() { Thread thread = new Thread() {
public void run() { public void run() {
...@@ -838,9 +844,9 @@ public class ActSuppliesHistorydataServiceImpl implements IActSuppliesHistorydat ...@@ -838,9 +844,9 @@ public class ActSuppliesHistorydataServiceImpl implements IActSuppliesHistorydat
} }
@Override @Override
public List<ActSuppliesHistorydata> selectActSuppliesHistorydataAcc(Integer tylkStatus) { public List<ActSuppliesHistorydata> selectActSuppliesHistorydataAcc(ActSuppliesHistorydata actSuppliesHistorydata) {
return actSuppliesHistorydataMapper.selectActSuppliesHistorydataAcc(tylkStatus); return actSuppliesHistorydataMapper.selectActSuppliesHistorydataAcc(actSuppliesHistorydata);
} }
......
...@@ -257,11 +257,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -257,11 +257,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where t1.clean_status = 0 and t1.tylk_status =#{tylkStatus} where t1.clean_status = 0 and t1.tylk_status =#{tylkStatus}
</select> </select>
<select id="selectActSuppliesHistorydataAcc" parameterType="java.lang.Integer" resultMap="ActSuppliesHistorydataResult"> <select id="selectActSuppliesHistorydataAcc" parameterType="ActSuppliesHistorydata" resultMap="ActSuppliesHistorydataResult">
SELECT t1.id,t1.import_uuid, t1.template_id, t1.export_uuid, t1.role_id, t1.history_name, t1.history_role,t1.conven_role,t2.history_content, t1.identifying_code, t1.status, t1.create_by, t1.create_time,t1.date,t1.ssk_id SELECT t1.id,t1.import_uuid, t1.template_id, t1.export_uuid, t1.role_id, t1.history_name, t1.history_role,t1.conven_role,t2.history_content, t1.identifying_code, t1.status, t1.create_by, t1.create_time,t1.date,t1.ssk_id
FROM act_supplies_historydata_copy1 t1 FROM act_supplies_historydata_copy1 t1
LEFT JOIN act_supplies_historycontent_copy1 t2 ON t1.import_uuid = t2.hid LEFT JOIN act_supplies_historycontent_copy1 t2 ON t1.import_uuid = t2.hid
where t1.clean_status = 0 and t1.tylk_status =#{tylkStatus} where t1.clean_status = 0 and t1.tylk_status =#{tylkStatus} and t1.ssk_id = #{mining}
</select> </select>
<update id="updateActSuppliesHistorydataStatusById" parameterType="java.lang.Long"> <update id="updateActSuppliesHistorydataStatusById" parameterType="java.lang.Long">
......
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
"af-table-column": "^1.0.3", "af-table-column": "^1.0.3",
"axios": "0.21.0", "axios": "0.21.0",
"babel-eslint": "10.1.0", "babel-eslint": "10.1.0",
"bigdecimal": "^0.6.1",
"chalk": "4.1.0", "chalk": "4.1.0",
"clipboard": "2.0.6", "clipboard": "2.0.6",
"connect": "3.6.6", "connect": "3.6.6",
...@@ -61,6 +62,7 @@ ...@@ -61,6 +62,7 @@
"jsencrypt": "3.0.0-rc.1", "jsencrypt": "3.0.0-rc.1",
"lint-staged": "10.5.3", "lint-staged": "10.5.3",
"luckyexcel": "^1.0.1", "luckyexcel": "^1.0.1",
"mathjs": "^12.4.0",
"moment": "^2.30.1", "moment": "^2.30.1",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"quill": "1.3.7", "quill": "1.3.7",
...@@ -72,7 +74,6 @@ ...@@ -72,7 +74,6 @@
"scriptjs": "^2.5.9", "scriptjs": "^2.5.9",
"svg-sprite-loader": "5.1.1", "svg-sprite-loader": "5.1.1",
"uuid": "^9.0.0", "uuid": "^9.0.0",
"vue": "2.6.12",
"vue-append": "^2.2.0", "vue-append": "^2.2.0",
"vue-count-to": "1.0.13", "vue-count-to": "1.0.13",
"vue-cropper": "0.5.5", "vue-cropper": "0.5.5",
...@@ -118,7 +119,7 @@ ...@@ -118,7 +119,7 @@
"scriptjs": "^2.5.9", "scriptjs": "^2.5.9",
"sortablejs": "^1.10.2", "sortablejs": "^1.10.2",
"svg-sprite-loader": "5.1.1", "svg-sprite-loader": "5.1.1",
"vue": "2.6.12", "vue": "^2.6.12",
"vue-append": "^2.2.0", "vue-append": "^2.2.0",
"vue-count-to": "1.0.13", "vue-count-to": "1.0.13",
"vue-cropper": "0.5.5", "vue-cropper": "0.5.5",
......
...@@ -4,6 +4,7 @@ import Excel from 'exceljs'; ...@@ -4,6 +4,7 @@ import Excel from 'exceljs';
import FileSaver from 'file-saver'; import FileSaver from 'file-saver';
const exportExcel = function (luckysheet, value, contrast, id) { const exportExcel = function (luckysheet, value, contrast, id) {
// 函数体 // 函数体
// 参数为luckysheet.getluckysheetfile()获取的对象 // 参数为luckysheet.getluckysheetfile()获取的对象
// 1.创建工作簿,可以为工作簿添加属性 // 1.创建工作簿,可以为工作簿添加属性
...@@ -23,8 +24,6 @@ const exportExcel = function (luckysheet, value, contrast, id) { ...@@ -23,8 +24,6 @@ const exportExcel = function (luckysheet, value, contrast, id) {
setMerge(merge, worksheet); setMerge(merge, worksheet);
setBorder(borderInfo, worksheet); setBorder(borderInfo, worksheet);
if (id === 1248) { if (id === 1248) {
worksheet.getRow(2).hidden = true; worksheet.getRow(2).hidden = true;
worksheet.getRow(3).hidden = true; worksheet.getRow(3).hidden = true;
worksheet.getRow(4).hidden = true; worksheet.getRow(4).hidden = true;
...@@ -131,14 +130,12 @@ var setStyleAndValue = function (cellArr, worksheet, contrast) { ...@@ -131,14 +130,12 @@ var setStyleAndValue = function (cellArr, worksheet, contrast) {
// style 填入到_value中可以实现填充色 // style 填入到_value中可以实现填充色
let letter = createCellPos(columnid); let letter = createCellPos(columnid);
let target = worksheet.getCell(letter + (rowid + 1)); let target = worksheet.getCell(letter + (rowid + 1));
if (contrast) { if (contrast) {
const column = worksheet.getColumn(1); const column = worksheet.getColumn(1);
const column2 = worksheet.getColumn(2); const column2 = worksheet.getColumn(2);
column.hidden = true; column.hidden = true;
column2.hidden = true; column2.hidden = true;
} }
// console.log('1233', letter + (rowid + 1))
for (const key in fill) { for (const key in fill) {
target.fill = fill; target.fill = fill;
break; break;
......
...@@ -11,8 +11,9 @@ export function selectActSuppliesHistorydata(tylkStatus) { ...@@ -11,8 +11,9 @@ export function selectActSuppliesHistorydata(tylkStatus) {
//查询通用凭证单表数据 //查询通用凭证单表数据
export function selectActSuppliesHistorydataAcc(tylkStatus) { export function selectActSuppliesHistorydataAcc(tylkStatus) {
return request({ return request({
url: '/system/cleaningrule/queryAllAcc/'+tylkStatus, url: '/system/cleaningrule/queryAllAcc',
method: 'get' method: 'put',
data: tylkStatus
}) })
} }
......
export function DongMine(money, code, codess, CompositeTable, Department, classify,duplicateData) { export function DongMine(money, code, codess, CompositeTable, Department, classify, duplicateData) {
let result = ['运输业务']
let results=['10:应付职工薪酬','福利费','自建食堂支付']
//先把运输业务插入到成本材料表中
let inserts = CompositeTable[0].celldata.filter(obj => obj.v.v == '5.其他业务成本')[0].r;
let insert=CompositeTable[0].celldata.filter(obj => obj.v.v == '9.专项储备')[0].r
for (let i = 0, k = 0; i < CompositeTable[0].celldata.length && k < results.length; i++) {
if (CompositeTable[0].celldata[i]?.r >= insert + 1 && CompositeTable[0].celldata[i]?.r < insert + 4 && CompositeTable[0].celldata[i]?.c == 0) {
CompositeTable[0].celldata[i].v = { v: results[k], m: results[k] };
k++;
}
}
for (let i = 0, k = 0; i < CompositeTable[0].celldata.length && k < result.length; i++) {
if (CompositeTable[0].celldata[i]?.r >= inserts + 1 && CompositeTable[0].celldata[i]?.r < inserts +2 && CompositeTable[0].celldata[i]?.c == 0) {
CompositeTable[0].celldata[i].v = { v: result[k], m: result[k] };
k++;
}
}
//东欢坨矿转换方法 //东欢坨矿转换方法
//如果部门为旧品和设备 并且他们的材料为支护用品和大型材料就把他们放到基本生产里 //如果部门为旧品和设备 并且他们的材料为支护用品和大型材料就把他们放到基本生产里
//材料编码,金额,部门 //材料编码,金额,部门
...@@ -9,7 +26,6 @@ export function DongMine(money, code, codess, CompositeTable, Department, classi ...@@ -9,7 +26,6 @@ export function DongMine(money, code, codess, CompositeTable, Department, classi
item.v.v = item.v.v.replace(/单项卡/g, ''); item.v.v = item.v.v.replace(/单项卡/g, '');
} }
}); });
money.forEach((item) => { money.forEach((item) => {
item.remark = ''; item.remark = '';
item.code = ''; item.code = '';
...@@ -101,9 +117,11 @@ export function DongMine(money, code, codess, CompositeTable, Department, classi ...@@ -101,9 +117,11 @@ export function DongMine(money, code, codess, CompositeTable, Department, classi
case '选煤': case '选煤':
item.r = DepartColumns.r + 3; item.r = DepartColumns.r + 3;
break; break;
case '厂区服': case '运输业':
item.r = DepartColumns.r + 1; item.r = DepartColumns.r + 1;
break; break;
case '福利费-自建食堂支持':
item.r=DepartColumns.r+2
default: default:
// 默认情况 // 默认情况
} }
...@@ -112,12 +130,18 @@ export function DongMine(money, code, codess, CompositeTable, Department, classi ...@@ -112,12 +130,18 @@ export function DongMine(money, code, codess, CompositeTable, Department, classi
} }
} }
}); });
// && item.r !==9 && item.c!==8
// 更新金额列 // // 更新金额列
for (let item of money) { for (let item of money) {
if (item.r > 8 && item.c < 10) { if (item.r > 8 && item.c < 10) {
item.c = 10; item.c = 10;
} }
if(item.cc==6 && item.r>=8 && item.r<=11){
item.c=item.cc
}
if(item.c==9){
item.c=10
}
} }
// 合并重复单元格数据 // 合并重复单元格数据
...@@ -155,9 +179,9 @@ export function DongMine(money, code, codess, CompositeTable, Department, classi ...@@ -155,9 +179,9 @@ export function DongMine(money, code, codess, CompositeTable, Department, classi
} }
} }
} }
let duplicateDatas={ let duplicateDatas = {
duplicateData:duplicateData, duplicateData: duplicateData,
CompositeTable:CompositeTable CompositeTable: CompositeTable
} }
return duplicateDatas return duplicateDatas
} }
\ No newline at end of file
export function Linxi(names,name, Department, money,code, duplicateData, CompositeTable, codess, classify,DepartmentColumns,codecolumn) { export function Linxi(names, Department, money, code, duplicateData, CompositeTable, codess, classify, DepartmentColumns, codecolumn) {
let nameColums = name
nameColums = nameColums.flat().filter(obj => obj.v.hasOwnProperty('v')); let results = ['加工修理']
let insert = CompositeTable[0].celldata.filter(obj => obj.v.v == '5.其他业务成本')[0].r
for (let i = 0, k = 0; i < CompositeTable[0].celldata.length && k < results.length; i++) {
if (CompositeTable[0].celldata[i] && CompositeTable[0].celldata[i].r && CompositeTable[0].celldata[i].r >= insert + 2 && CompositeTable[0].celldata[i].r < insert + 4 && CompositeTable[0].celldata[i].c == 0) {
CompositeTable[0].celldata[i].v.v = results[k];
CompositeTable[0].celldata[i].v.m = results[k];
k++;
}
}
let name1 = Department let name1 = Department
// code 编码 name1部门名称 money金额 name1 部门名称 // code 编码 name1部门名称 money金额 name1 部门名称
// 清空属性 // 清空属性
...@@ -12,7 +20,7 @@ export function Linxi(names,name, Department, money,code, duplicateData, Composi ...@@ -12,7 +20,7 @@ export function Linxi(names,name, Department, money,code, duplicateData, Composi
entry.index = entry.r entry.index = entry.r
}); });
// 合并数组 // 合并数组
let newobj = [...name1, ...nameColums, ...code]; let newobj = [...name1, ...code];
// 匹配赋值 // 匹配赋值
money.forEach(m => { money.forEach(m => {
newobj.forEach(a => { newobj.forEach(a => {
...@@ -115,7 +123,7 @@ export function Linxi(names,name, Department, money,code, duplicateData, Composi ...@@ -115,7 +123,7 @@ export function Linxi(names,name, Department, money,code, duplicateData, Composi
item.r = DepartColumns.r + 1; item.r = DepartColumns.r + 1;
break; break;
case '加工修理': case '加工修理':
item.r = DepartColumns.r + 4; item.r = DepartColumns.r + 2;
break; break;
default: default:
// 默认情况 // 默认情况
......
export function MoneyMine(money, DepartmentColumns, name, materianame, c, CompositeTable, headRow) {
let results = ['运输业务']
//先把安全费用 研发什么的插入到成本材料表中
let insert = CompositeTable[0].celldata.filter(obj => obj.v.v == '5.其他业务成本')[0].r
for (let i = 0, k = 0; i < CompositeTable[0].celldata.length && k < results.length; i++) {
if (CompositeTable[0].celldata[i] && CompositeTable[0].celldata[i].r && CompositeTable[0].celldata[i].r >= insert + 2 && CompositeTable[0].celldata[i].r < insert + 4 && CompositeTable[0].celldata[i].c == 0) {
CompositeTable[0].celldata[i].v.v = results[k];
CompositeTable[0].celldata[i].v.m = results[k];
k++;
}
}
//部门 因为部门再第0列 所以条件 obj.c不满足 需要单独写出来
let Department = c.flat().filter(obj => obj.c !== undefined && obj.c == DepartmentColumns && obj.r > headRow)
//表头行数据
let remarkColumns = c.flat().filter(obj => obj.r !== undefined && obj.r == headRow)
//最后一列
let remark = c.flat().filter(obj => obj.c && obj.c == remarkColumns.length && obj.r > headRow)
money.forEach(item => {
item.v.name = ''
item.index = item.r,
item.v.remark = '',
item.materianame = ''
item.Department = ''
item.matching = false
});
for (let i = 0; i < money.length; i++) {
if (money[i].r == Department[i].r) {
money[i].Department = Department[i].v.v;
}
if (money[i].r == name[i].r) {
money[i].v.name = name[i].v.v;
}
if (money[i].r == materianame[i].r) {
money[i].materianame = materianame[i].v.v;
}
if (money[i].r == remark[i].r) {
money[i].v.remark = remark[i].v.v;
}
}
let classify =
[
{
remark: '坑木',
name: '支-生产-大型材料,支-生产-一般材料',
r: 5,
c: 1
},
{
remark: '坑代',
name: '支-生产-大型材料,支-生产-一般材料',
r: 5,
c: 2
},
{
remark: '国配,综配',
name: '支-生产-大型材料,支-生产-一般材料',
r: 5,
c: 3
},
{
remark: '工具',
name: '支-生产-大型材料,支-生产-一般材料',
r: 5,
c: 4
},
{
remark: '劳保',
name: '支-生产-大型材料,支-生产-一般材料',
r: 5,
c: 6
},
{
remark: '建材',
name: '支-生产-大型材料,支-生产-一般材料',
r: 5,
c: 7
},
{
remark: '化工',
name: '支-生产-大型材料,支-生产-一般材料',
r: 5,
c: 8
},
]
let SectorPlant = [{
Department: '洗煤厂',
remark: '国配,综配',
r: 6,
c: 4
},
{
Department: '洗煤厂',
remark: '化工',
r: 6,
c: 8
},]
let organ = [
{
Department: '机关',
r: 12,
c: 10
},
{
materianame: '钢丝绳,轻轨,电缆,运输带,钢管',
r: 5,
c: 3
},
{
Department: '煤制科',
materianame: '柴油,汽油',
r: 16,
c: 10
},
]
let coal = [{
Department: '洗煤厂',
remark: '国配,综配,化工',
r: 6,
c: 10
}]
money.forEach(item => {
item.v.v = Math.abs(item.v.v);
item.v.m = Math.abs(item.v.v);
classify.forEach(obj => {
const classifyNames = obj.name.includes(',') ? obj.name.split(',').map(value => value.trim()) : [obj.name.trim()]; // 含有逗号时分割,不含逗号时直接 trim
const classifyRemarks = obj.remark.trim().includes(',') ? obj.remark.split(',').map(value => value.trim()) : [obj.remark.trim()];
if (classifyNames.some(nameValue => {
const itemNames = item.v.name.includes(',') ? item.v.name.split(',').map(value => value.trim()) : [item.v.name.trim()]
return itemNames.includes(nameValue);
}) && classifyRemarks.some(remarkValue => {
const itemRemarks = item.v.remark.trim().includes(',') ? item.v.remark.split(',').map(value => value.trim()) : [item.v.remark.trim()];
return itemRemarks.includes(remarkValue)
})) {
item.r = obj.r;
item.c = obj.c;
item.matching = true
}
});
SectorPlant.forEach(obj => {
const classifyNames = obj.Department.includes(',') ? obj.Department.split(',').map(value => value.trim()) : [obj.Department.trim()]; // 含有逗号时分割,不含逗号时直接 trim
const classifyRemarks = obj.remark.trim().includes(',') ? obj.remark.split(',').map(value => value.trim()) : [obj.remark.trim()];
if (classifyNames.some(nameValue => {
const itemNames = item.Department.includes(',') ? item.Department.split(',').map(value => value.trim()) : [item.Department.trim()]
return itemNames.includes(nameValue);
}) && classifyRemarks.some(remarkValue => {
const itemRemarks = item.v.remark.trim().includes(',') ? item.v.remark.split(',').map(value => value.trim()) : [item.v.remark.trim()];
return itemRemarks.includes(remarkValue)
})) {
item.r = obj.r;
item.c = obj.c;
item.matching = true
}
});
organ.forEach(obj => {
const checkDepartment = obj.Department && (obj.Department.includes(',') ? obj.Department.split(',').map(value => value.trim()) : [obj.Department.trim()]);
const checkMaterianame = obj.materianame && (obj.materianame.includes(',') ? obj.materianame.split(',').map(value => value.trim()) : [obj.materianame.trim()]);
if ((checkDepartment && checkDepartment.some(nameValue => item.Department.includes(nameValue))) ||
(checkMaterianame && checkMaterianame.some(remarkValue => item.materianame.includes(remarkValue)))) {
item.r = obj.r;
item.c = obj.c;
item.matching = true
}
});
coal.forEach(obj => {
const classifyNames = obj.Department.includes(',') ? obj.Department.split(',').map(value => value.trim()) : [obj.Department.trim()]; // 含有逗号时分割,不含逗号时直接 trim
const classifyRemarks = obj.remark.trim().includes(',') ? obj.remark.split(',').map(value => value.trim()) : [obj.remark.trim()];
if (classifyNames.some(nameValue => {
const itemNames = item.Department.includes(',') ? item.Department.split(',').map(value => value.trim()) : [item.Department.trim()]
return itemNames.includes(nameValue);
}) && classifyRemarks.every(remarkValue => {
const itemRemarks = item.v.remark.trim().includes(',') ? item.v.remark.split(',').map(value => value.trim()) : [item.v.remark.trim()];
return itemRemarks.every(itemRemark => itemRemark !== remarkValue);
})) {
item.r = obj.r;
item.c = obj.c;
item.matching = true
}
});
if (!item.matching) {
item.r = 5
item.c = 10
}
});
let duplicateData = [];
let seen = new Map();
// 根据行列信息合并重复数据并记录索引
for (let obj of money) {
let key = obj.r + ',' + obj.c;
if (seen.has(key)) {
let existingObj = seen.get(key);
existingObj.v.v += obj.v.v;
existingObj.v.m = (parseInt(existingObj.v.m) + parseInt(obj.v.m)).toString();
existingObj.index.push(obj.index);
} else {
obj.index = [obj.index];
seen.set(key, obj);
}
}
// 将合并后的数据放入 duplicateData 数组
for (let obj of seen.values()) {
if (obj.v.v > 0 || parseInt(obj.v.m) > 0) {
duplicateData.push(obj);
}
}
duplicateData = duplicateData.map(item => {
return {
...item,
v: {
...item.v,
v: isNaN(item.v.v) ? item.v.v : Number(item.v.v).toFixed(2)
}
};
});
// 替换金额所在列和行相同的模板表中的数据
//金额所在列和行,去模板表中查找,如果行列一致则替换
for (let i = 0; i < duplicateData.length; i++) {
// // 对比 c 和 r 是否与 CompositeTable[0]["celldata"] 中相应对象相同
for (let k = 0; k < CompositeTable[0]["celldata"].length; k++) {
if (duplicateData[i].r === CompositeTable[0]["celldata"][k].r && duplicateData[i].c === CompositeTable[0]["celldata"][k].c) {
// 如果相同,则进行替换
CompositeTable[0]["celldata"][k] = duplicateData[i];
}
}
}
let duplic = {
duplicateData: duplicateData,
CompositeTable: CompositeTable
}
return duplic
}
\ No newline at end of file
export function Tangshan(money, c, name, CompositeTable, headRow) {
//money 总金额 c导入表所有数据,name 来源类别,CompositeTable 材料汇总表数据, headRow 数据行
let results = ['金属厂']
let insert = CompositeTable[0].celldata.filter(obj => obj.v.v == '7.代付单位(XXX单位)')[0].r
for (let i = 0, k = 0; i < CompositeTable[0].celldata.length && k < results.length; i++) {
if (CompositeTable[0].celldata[i] && CompositeTable[0].celldata[i].r && CompositeTable[0].celldata[i].r >= insert + 1 && CompositeTable[0].celldata[i].r < insert + 4 && CompositeTable[0].celldata[i].c == 0) {
CompositeTable[0].celldata[i].v.v = results[k];
CompositeTable[0].celldata[i].v.m = results[k];
k++;
}
}
function findValueInArray(arr, value) {
for (let obj of arr) {
if (JSON.stringify(obj).includes(value)) {
return obj;
}
}
return null;
}
let targetValue = "器材大类";
let resultObject = findValueInArray(c, targetValue);
let material = c.flat().filter(obj => obj.c && obj.c == resultObject.c && obj.r > headRow)
money.forEach(entry => {
entry.department = '';
entry.v.name = '';
entry.v.material = '';
entry.index = entry.r
});
// 匹配赋值
for (let i = 0; i < money.length; i++) {
if (money[i].r == name[i].r) {
money[i].v.name = name[i].v.v;
}
if (money[i].r == material[i].r) {
money[i].v.material = material[i].v.v;
}
}
//对费用来源列和材料分类列进行处理
money.forEach(obj => {
if (!obj.v.material) {
obj.v.material = '其他材料'
}
if (obj.v.name == '基本生产' || obj.v.name == '制造费用') {
obj.v.name += '-原煤'
}
if (obj.v.name.includes('洗煤')) {
obj.v.name = '基本生产-洗煤'
}
if (obj.v.name == '其他业务成本') {
obj.v.name += '-厂区服务'
}
if (obj.v.name == '其他费用') {
obj.v.name = '代付单位(XXX单位)-金属厂'
}
// 如果不包含连字符,就在末尾添加一个连字符
if (obj.v.name.indexOf('-') === -1) {
obj.v.name += '-';
}
})
//材料分类列和汇总列数值一样的话,列数就一样
money.forEach(obj => {
CompositeTable[0].celldata.forEach(cell => {
if (obj.v.material == cell.v.v) {
obj.c = cell.c
}
})
})
money.forEach(item => {
if (item.v.name !== undefined) {
let index = item.v.name.indexOf("-");
if (index !== -1) {
let substrBeforeDash = item.v.name.slice(0, index);
let DepartColumns = CompositeTable[0]["celldata"].flat().filter(obj => {
if (obj.v && obj.v.v && typeof obj.v.v === 'string') {
return obj.v.v.includes(item.v.name.slice(0, index));
}
return false;
})[0];
if (DepartColumns && DepartColumns.r) {
let index = item.v.name.indexOf("-");
if (index !== -1) {
let substrAfterDash = item.v.name.slice(index + 1);
switch (substrAfterDash) {
case '':
item.r = DepartColumns.r;
break;
case '原煤':
item.r = DepartColumns.r + 1;
break;
case '洗煤':
item.r = DepartColumns.r + 2;
break;
case '选煤':
item.r = DepartColumns.r + 3;
break;
case '厂区服务':
item.r = DepartColumns.r + 1;
break;
case '加工修理':
item.r = DepartColumns.r + 4;
break;
case '金属厂':
item.r=DepartColumns.r+1
default:
// 默认情况
}
}
}
}
}
});
// 同一个单元格,金额相加
let seen = new Map();
let duplicateData = []
money.forEach((obj) => {
let key = obj.r + ',' + obj.c;
if (seen.has(key)) {
let existingObj = seen.get(key);
existingObj.v.v = Number(existingObj.v.v) + Number(obj.v.v);
existingObj.v.m = existingObj.v.v.toString();
existingObj.index.push(obj.index);
} else {
obj.index = [obj.index];
seen.set(key, obj);
}
});
seen.forEach(obj => {
if (obj.v.v > 0 || parseInt(obj.v.m) > 0) {
duplicateData.push(obj);
}
});
duplicateData = duplicateData.map(item => {
return {
...item,
v: {
...item.v,
v: isNaN(item.v.v) ? item.v.v : Number(item.v.v).toFixed(2),
m: Number(item.v.m).toFixed(2)
}
};
});
for (let i = 0; i < duplicateData.length; i++) {
// // 对比 c 和 r 是否与 CompositeTable[0]["celldata"] 中相应对象相同
for (let k = 0; k < CompositeTable[0]["celldata"].length; k++) {
if (duplicateData[i].r === CompositeTable[0]["celldata"][k].r && duplicateData[i].c === CompositeTable[0]["celldata"][k].c) {
// 如果相同,则进行替换
CompositeTable[0]["celldata"][k] = duplicateData[i];
}
}
}
duplicateData.forEach(obj=>{
if(obj.r>8){
obj.c=10
}
})
let duplicateDatas = {
duplicateData: duplicateData,
CompositeTable: CompositeTable
}
return duplicateDatas
}
\ No newline at end of file
import { selectActSuppliesHistorydataAcc } from "@/api/Actsupplies/cleaning_rule"; import { selectActSuppliesHistorydataAcc } from "@/api/Actsupplies/cleaning_rule";
import { Tangshan } from "@/conversion/TangshanMine"; // import { Tangshan } from "@/conversion/TangshanMine";
import { Tangshan } from "@/conversion/TangshanMine copy";
import { Linxi } from "@/conversion/LinxiMine"; import { Linxi } from "@/conversion/LinxiMine";
import { lvMine } from "@/conversion/lvMine"; import { lvMine } from "@/conversion/lvMine";
import { fanMine } from "@/conversion/fanMine"; import { fanMine } from "@/conversion/fanMine";
import { DongMine } from "@/conversion/DonghuantuoMine"; import { DongMine } from "@/conversion/DonghuantuoMine";
import { danMine } from "@/conversion/danhouMine"; import { danMine } from "@/conversion/danhouMine";
import { hongMine } from "@/conversion/hongMine"; import { hongMine } from "@/conversion/hongMine";
import { MoneyMine } from "@/conversion/MoneyMine";
import { getSuppliesTemplate, listSuppliesTemplate, roleList, materialListPZ, accountingcode, department, roleListid, } from "@/api/ruoyi-myLuckyexcel/myluckyexcel"; import { getSuppliesTemplate, listSuppliesTemplate, roleList, materialListPZ, accountingcode, department, roleListid, } from "@/api/ruoyi-myLuckyexcel/myluckyexcel";
import { addInsert, addInsertAccount1, addInsertAccount2 } from "@/api/system/historydata" import { addInsert, addInsertAccount1, addInsertAccount2 } from "@/api/system/historydata"
/*import luckysheet from 'luckysheet'*/ /*import luckysheet from 'luckysheet'*/
...@@ -14,6 +16,7 @@ import LuckyExcel from 'luckyexcel' ...@@ -14,6 +16,7 @@ import LuckyExcel from 'luckyexcel'
/*import {materialList} from "@/api/ruoyi-myLuckyexcel/myluckyexcel";*/ /*import {materialList} from "@/api/ruoyi-myLuckyexcel/myluckyexcel";*/
import { exportExcel } from '../../public/exportExcel'; import { exportExcel } from '../../public/exportExcel';
import { v4 as uuidv4 } from 'uuid'; import { v4 as uuidv4 } from 'uuid';
import { min } from "moment/moment";
var fileName = "新建XLSX工作表"; //定义表名 var fileName = "新建XLSX工作表"; //定义表名
var rule = []; var rule = [];
var tempId; var tempId;
...@@ -273,7 +276,7 @@ export default { ...@@ -273,7 +276,7 @@ export default {
}); });
}, },
open4() { open4() {
this.$message.error('找不到部门名称或者结算金额和材料编码列,请改为正确名称'); this.$message.error('请仔细检查所导入表');
}, },
/** 规则下拉选 调佣后端的方法*/ /** 规则下拉选 调佣后端的方法*/
handleRuleChange(value) { handleRuleChange(value) {
...@@ -482,6 +485,9 @@ export default { ...@@ -482,6 +485,9 @@ export default {
//类别名称 //类别名称
let names = this.cleaning[0].sourceColoumn ? this.cleaning[0].sourceColoumn - 1 : null; let names = this.cleaning[0].sourceColoumn ? this.cleaning[0].sourceColoumn - 1 : null;
let name = names ? c.flat().filter(obj => obj.c && obj.c === names && obj.r > headRow) : null; let name = names ? c.flat().filter(obj => obj.c && obj.c === names && obj.r > headRow) : null;
//材料名称所在列
let materias = this.cleaning[0].NameColumn - 1
let materianame = c.flat().filter(obj => obj.c && obj.c === materias && obj.r > headRow)
//数量所在列 //数量所在列
let numbercolumn = this.cleaning[0].NumberColumn - 1 let numbercolumn = this.cleaning[0].NumberColumn - 1
let number = c.flat().filter(obj => obj.c && obj.c === numbercolumn && obj.r > headRow) let number = c.flat().filter(obj => obj.c && obj.c === numbercolumn && obj.r > headRow)
...@@ -489,25 +495,24 @@ export default { ...@@ -489,25 +495,24 @@ export default {
let MoneyColumn = this.cleaning[0].MoneyColumn - 1 let MoneyColumn = this.cleaning[0].MoneyColumn - 1
let moneys = c.flat().filter(obj => obj.c && obj.c === MoneyColumn && obj.r > headRow) let moneys = c.flat().filter(obj => obj.c && obj.c === MoneyColumn && obj.r > headRow)
//算总额 //算总额
let money = [] let money = [];
number.forEach((n, index) => { number.forEach((n, index) => {
if (n.r === moneys[index].r) { if (n.r === moneys[index].r) {
moneys[index].v.v = (moneys[index].v.v * n.v.v).toFixed(2) moneys[index].v.v = (moneys[index].v.v * n.v.v).toFixed(2)
money.push(moneys[index]) money.push(moneys[index])
} }
}) })
// 唐山矿转换方法 // 唐山矿转换方法
//没任何规则 //没任何规则
let duplicateData = [] let duplicateData = []
if (this.mining == '010101') { if (this.mining == '010101') {
// Tangshan(money, code, codess, CompositeTable, Department, classify, headRow, duplicateData) const duplicateDatas = Tangshan(money, c, name, CompositeTable, headRow)
const duplicateDatas = Tangshan(money, code, codess, CompositeTable, Department, classify, headRow)
duplicateData = duplicateDatas.duplicateData duplicateData = duplicateDatas.duplicateData
CompositeTable = duplicateDatas.CompositeTable CompositeTable = duplicateDatas.CompositeTable
} }
if (this.mining == '011704') { if (this.mining == '011704') {
const duplicateDatas = Linxi(names, name, Department, money, code, duplicateData, CompositeTable, codess, classify, DepartmentColumns, codecolumn) const duplicateDatas = Linxi(names, Department, money, code, duplicateData, CompositeTable, codess, classify, DepartmentColumns, codecolumn)
duplicateData = duplicateDatas.duplicateData duplicateData = duplicateDatas.duplicateData
CompositeTable = duplicateDatas.CompositeTable CompositeTable = duplicateDatas.CompositeTable
} }
...@@ -517,9 +522,10 @@ export default { ...@@ -517,9 +522,10 @@ export default {
CompositeTable = duplicateDatas.CompositeTable CompositeTable = duplicateDatas.CompositeTable
} }
if (this.mining == '011204') { if (this.mining == '011204') {
const duplicateDatas = danMine(this.newArray, c, Department, money, code, classify, codess) const duplicateDatas = danMine(this.newArray, c, Department, money, code, classify, codess, name, headRow)
duplicateData = duplicateDatas.duplicateData duplicateData = duplicateDatas.duplicateData
CompositeTable = duplicateDatas.CompositeTable CompositeTable = duplicateDatas.CompositeTable
} }
if (this.mining == '011702') { if (this.mining == '011702') {
const duplicateDatas = lvMine(CompositeTable, cjson, codess) const duplicateDatas = lvMine(CompositeTable, cjson, codess)
...@@ -532,10 +538,17 @@ export default { ...@@ -532,10 +538,17 @@ export default {
CompositeTable = duplicateDatas.CompositeTable CompositeTable = duplicateDatas.CompositeTable
} }
if (this.mining == '011502') { if (this.mining == '011502') {
let MoneyColumn = c.filter(item => item.v && (typeof item.v.v === 'string' && item.v.v.includes('金额') || typeof item.v.m === 'string' && item.v.m.includes('金额')))[0].c;
let money = c.flat().filter(obj => obj.c && obj.c === MoneyColumn && obj.r > headRow)
const duplicateDatas = hongMine(money, Department, code, name, codess, this.newArrayhong) const duplicateDatas = hongMine(money, Department, code, name, codess, this.newArrayhong)
duplicateData = duplicateDatas.duplicateData duplicateData = duplicateDatas.duplicateData
CompositeTable = duplicateDatas.CompositeTable CompositeTable = duplicateDatas.CompositeTable
} }
if (this.mining == '010105') {
const duplicateDatas = MoneyMine(money, DepartmentColumns, name, materianame, c, CompositeTable, headRow)
duplicateData = duplicateDatas.duplicateData
CompositeTable = duplicateDatas.CompositeTable
}
// celldata => data 生成表格所需二维数组 // celldata => data 生成表格所需二维数组
CompositeTable[0].data = luckysheet.transToData(CompositeTable[0]["celldata"]) CompositeTable[0].data = luckysheet.transToData(CompositeTable[0]["celldata"])
if (!(this.value.includes('凭证'))) { if (!(this.value.includes('凭证'))) {
...@@ -554,10 +567,10 @@ export default { ...@@ -554,10 +567,10 @@ export default {
this.generate.historyContent = JSON.stringify(CompositeTable) this.generate.historyContent = JSON.stringify(CompositeTable)
//往后台传科目编码相关的东西 //往后台传科目编码相关的东西
let matchedItems = CompositeTable[0]["celldata"].filter(item => item.v && (typeof item.v.v === 'string' && item.v.v.includes('其他材料') || typeof item.v.m === 'string' && item.v.m.includes('其他材料')))[0].r; let matchedItems = CompositeTable[0]["celldata"].filter(item => item.v && (typeof item.v.v === 'string' && item.v.v.includes('其他材料') || typeof item.v.m === 'string' && item.v.m.includes('其他材料')))[0].r;
let material = CompositeTable[0]["celldata"].flat().filter(obj => obj.r && obj.r === matchedItems ) let material = CompositeTable[0]["celldata"].flat().filter(obj => obj.r && obj.r === matchedItems)
duplicateData.forEach(obj => { duplicateData.forEach(obj => {
material.forEach(cell => { material.forEach(cell => {
if (obj.c === cell.c ) { if (obj.c === cell.c) {
obj.v.material = cell.v.v; obj.v.material = cell.v.v;
} }
}); });
...@@ -595,6 +608,7 @@ export default { ...@@ -595,6 +608,7 @@ export default {
sum.forEach(item => { sum.forEach(item => {
item.v = Number(item.v).toFixed(2); item.v = Number(item.v).toFixed(2);
}); });
sum = sum.filter(item => item.v !== "0.00");
const VoucherForm = JSON.parse(this.VoucherForm); const VoucherForm = JSON.parse(this.VoucherForm);
const filteredData = VoucherForm[0].celldata.filter(obj => obj.r === 5); const filteredData = VoucherForm[0].celldata.filter(obj => obj.r === 5);
...@@ -706,6 +720,9 @@ export default { ...@@ -706,6 +720,9 @@ export default {
.filter(([key, value]) => value !== null) .filter(([key, value]) => value !== null)
.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}) .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})
); );
if (sum.length == 1) {
filteredArr.pop()
}
this.ImportTables.historyRole = filteredArr.map(item => { this.ImportTables.historyRole = filteredArr.map(item => {
let extractedItem = {}; let extractedItem = {};
if (item.accountingCode) { if (item.accountingCode) {
...@@ -954,7 +971,11 @@ export default { ...@@ -954,7 +971,11 @@ export default {
exportExcel(luckysheet.getAllSheets(), fileName, trueORfalse, this.value); exportExcel(luckysheet.getAllSheets(), fileName, trueORfalse, this.value);
// 清洗数据 // 清洗数据
selectActSuppliesHistorydataAcc(3).then(response => { let mine={
tylkStatus:3,
mining:this.mining,
}
selectActSuppliesHistorydataAcc(mine).then(response => {
var data = response.data; var data = response.data;
let list = []; let list = [];
let list1 = []; let list1 = [];
......
export function danMine(newArray,c,Department,money,code,classify,codess) { export function danMine(newArray,c,Department,money,code,classify,codess,name,headRow) {
//单侯矿转换方法&& this.selectname.includes('单侯') //单侯矿转换方法&& this.selectname.includes('单侯')
//特定规则 制造费用可能放也可能不放,制造费用后期可能会晒出来
let headRows = newArray[0].celldata.flat().filter(obj => obj.v && obj.v.v === "火工品")[0]?.r
//费用来源 //费用来源
let fylyColumn = c.flat().filter(obj => obj.v && obj.v.v === "费用来源")[0]?.c let headRows = newArray[0].celldata.flat().filter(obj => obj.r && obj.r === headRow && obj.c > 0)
let headRow = newArray[0].celldata.flat().filter(obj => obj.r && obj.r === headRows && obj.c > 0)
let fyly = c.flat().filter(obj => obj.c && obj.c === fylyColumn && obj.r > 0)
// 清空money数组中的属性 // 清空money数组中的属性
money.forEach(item => { money.forEach(item => {
item.Department = ''; item.Department = '';
...@@ -27,7 +23,7 @@ export function danMine(newArray,c,Department,money,code,classify,codess) { ...@@ -27,7 +23,7 @@ export function danMine(newArray,c,Department,money,code,classify,codess) {
item.Department = matchingRemark.v.v; item.Department = matchingRemark.v.v;
} }
let matchingFyly = fyly.find(f => f.r === item.r); let matchingFyly = name.find(f => f.r === item.r);
if (matchingFyly) { if (matchingFyly) {
item.fyly = matchingFyly.v.v; item.fyly = matchingFyly.v.v;
} }
...@@ -45,6 +41,9 @@ export function danMine(newArray,c,Department,money,code,classify,codess) { ...@@ -45,6 +41,9 @@ export function danMine(newArray,c,Department,money,code,classify,codess) {
if (item.Department.includes('生活')) { if (item.Department.includes('生活')) {
item.Department = '生活科' item.Department = '生活科'
} }
if(item.fyly !=='生产成本'){
item.Department=item.fyly
}
}); });
money = money.map(obj => { money = money.map(obj => {
let v = obj.Department; let v = obj.Department;
...@@ -87,7 +86,9 @@ export function danMine(newArray,c,Department,money,code,classify,codess) { ...@@ -87,7 +86,9 @@ export function danMine(newArray,c,Department,money,code,classify,codess) {
} }
if (!money[i].cc) { if (!money[i].cc) {
money[i].c = 10 money[i].c = 10
}
if (!money[i].rr) {
money[i].r = ''
} }
} }
let seen = new Map(); let seen = new Map();
...@@ -110,6 +111,10 @@ export function danMine(newArray,c,Department,money,code,classify,codess) { ...@@ -110,6 +111,10 @@ export function danMine(newArray,c,Department,money,code,classify,codess) {
duplicateData.push(obj); duplicateData.push(obj);
} }
} }
duplicateData.forEach(obj=>{
obj.v.v = Number(obj.v.v).toFixed(2);
obj.v.m = Number(obj.v.v).toFixed(2);
})
for (let i = 0; i < duplicateData.length; i++) { for (let i = 0; i < duplicateData.length; i++) {
// // 对比 c 和 r 是否与 he[0]["celldata"] 中相应对象相同 // // 对比 c 和 r 是否与 he[0]["celldata"] 中相应对象相同
for (let k = 0; k < synthesis[0]["celldata"].length; k++) { for (let k = 0; k < synthesis[0]["celldata"].length; k++) {
...@@ -119,53 +124,55 @@ export function danMine(newArray,c,Department,money,code,classify,codess) { ...@@ -119,53 +124,55 @@ export function danMine(newArray,c,Department,money,code,classify,codess) {
} }
} }
} }
duplicateData.forEach(item => { let duplicateJSON= JSON.stringify(duplicateData)
const matchedHeadRow = headRow.find(headItem => headItem.c === item.c); duplicateJSON=JSON.parse(duplicateJSON)
duplicateJSON.forEach(item => {
const matchedHeadRow = headRows.find(headItem => headItem.c === item.c);
if (matchedHeadRow) { if (matchedHeadRow) {
item.v.material = matchedHeadRow.v.v; item.v.material = matchedHeadRow.v.v;
} }
}); });
for (let i = 0; i < duplicateData.length; i++) { for (let i = 0; i < duplicateJSON.length; i++) {
if (duplicateData[i].r > 4 && duplicateData[i].r < 16) { if (duplicateJSON[i].r > 4 && duplicateJSON[i].r < 16) {
//管理费用 //管理费用
duplicateData[i].r = 6 duplicateJSON[i].r = 6
duplicateData[i].c = 12 duplicateJSON[i].c = 12
} }
if (duplicateData[i].r > 16 && duplicateData[i].r < 27) { if (duplicateJSON[i].r > 16 && duplicateJSON[i].r < 27) {
//制造费用 //制造费用
duplicateData[i].r = 7 duplicateJSON[i].r = 7
duplicateData[i].c = 10 duplicateJSON[i].c = 10
} }
if (duplicateData[i].r > 28 && duplicateData[i].r < 43) { if (duplicateJSON[i].r > 28 && duplicateJSON[i].r < 43) {
//基本费用 //基本费用
duplicateData[i].r = 8 duplicateJSON[i].r = 8
} }
if (duplicateData[i].r > 43 && duplicateData[i].r < 46) { if (duplicateJSON[i].r > 43 && duplicateJSON[i].r < 46) {
//销售费用 //销售费用
duplicateData[i].r = 9 duplicateJSON[i].r = 9
duplicateData[i].c = 10 duplicateJSON[i].c = 10
} }
if (duplicateData[i].r > 46 && duplicateData[i].r < 48) { if (duplicateJSON[i].r > 46 && duplicateJSON[i].r < 48 ||(!duplicateJSON[i].r)) {
//其他业务 //其他业务
duplicateData[i].r = 10 duplicateJSON[i].r = 10
duplicateData[i].c = 10 duplicateJSON[i].c = 10
} }
if (duplicateData[i].r > 49 && duplicateData[i].r < 51) { if (duplicateJSON[i].r > 49 && duplicateJSON[i].r < 51) {
//安全费用 //安全费用
duplicateData[i].r = 11 duplicateJSON[i].r = 11
duplicateData[i].c = 10 duplicateJSON[i].c = 10
} }
} }
let seens = new Map(); let seens = new Map();
let duplicateDatas = []; let duplicateDatas = [];
for (let obj of duplicateData) { for (let obj of duplicateJSON) {
let key = obj.r + ',' + obj.c; let key = obj.r + ',' + obj.c;
if (seens.has(key)) { if (seens.has(key)) {
let existingObj = seens.get(key); let existingObj = seens.get(key);
...@@ -182,8 +189,14 @@ export function danMine(newArray,c,Department,money,code,classify,codess) { ...@@ -182,8 +189,14 @@ export function danMine(newArray,c,Department,money,code,classify,codess) {
duplicateDatas.push(obj); duplicateDatas.push(obj);
} }
} }
duplicateJSON = duplicateJSON.filter(item => item.v && item.v.name);
duplicateJSON.forEach(items=>{
items.v.v = Number(items.v.v).toFixed(2);
items.v.m = items.v.v.toString();
items.v.m = Number(items.v.m).toFixed(2);
})
let duplic={ let duplic={
duplicateData:duplicateDatas, duplicateData:duplicateJSON,
CompositeTable:synthesis CompositeTable:synthesis
} }
return duplic return duplic
......
...@@ -5,6 +5,7 @@ export function fanMine(money, codess, code, CompositeTable, name) { ...@@ -5,6 +5,7 @@ export function fanMine(money, codess, code, CompositeTable, name) {
entry.v.name = ''; entry.v.name = '';
//编码 //编码
entry.code = ''; entry.code = '';
entry.row = ''
//对比编码之后的列数 //对比编码之后的列数
entry.coloumn = '' entry.coloumn = ''
//所在行 //所在行
...@@ -56,22 +57,22 @@ export function fanMine(money, codess, code, CompositeTable, name) { ...@@ -56,22 +57,22 @@ export function fanMine(money, codess, code, CompositeTable, name) {
let substrAfterDash = item.v.name.slice(index + 1); let substrAfterDash = item.v.name.slice(index + 1);
switch (substrAfterDash) { switch (substrAfterDash) {
case '': case '':
item.r = DepartColumns.r; item.row = DepartColumns.r;
break; break;
case '原煤': case '原煤':
item.r = DepartColumns.r + 1; item.row = DepartColumns.r + 1;
break; break;
case '洗煤': case '洗煤':
item.r = DepartColumns.r + 2; item.row = DepartColumns.r + 2;
break; break;
case '选煤': case '选煤':
item.r = DepartColumns.r + 3; item.row = DepartColumns.r + 3;
break; break;
case '厂区服务': case '厂区服务':
item.r = DepartColumns.r + 1; item.row = DepartColumns.r + 1;
break; break;
case '加工修理': case '加工修理':
item.r = DepartColumns.r + 4; item.row = DepartColumns.r + 4;
break; break;
default: default:
// 默认情况 // 默认情况
...@@ -83,6 +84,7 @@ export function fanMine(money, codess, code, CompositeTable, name) { ...@@ -83,6 +84,7 @@ export function fanMine(money, codess, code, CompositeTable, name) {
}); });
money.forEach((item) => { money.forEach((item) => {
item.c = item.coloumn ? item.coloumn * 1 : 10; item.c = item.coloumn ? item.coloumn * 1 : 10;
item.r = item.row ? item.row * 1 : '';
}); });
// 同一个单元格,金额相加 // 同一个单元格,金额相加
let seen = new Map(); let seen = new Map();
...@@ -126,6 +128,7 @@ export function fanMine(money, codess, code, CompositeTable, name) { ...@@ -126,6 +128,7 @@ export function fanMine(money, codess, code, CompositeTable, name) {
} }
} }
} }
duplicateData=duplicateData.filter(obj=>obj.row!=='')
let duplicateDatas = { let duplicateDatas = {
duplicateData: duplicateData, duplicateData: duplicateData,
CompositeTable: CompositeTable CompositeTable: CompositeTable
......
...@@ -11,8 +11,10 @@ export function hongMine(money, Department, code, name, codess, newArrayhong) { ...@@ -11,8 +11,10 @@ export function hongMine(money, Department, code, name, codess, newArrayhong) {
element.row = '' element.row = ''
element.index = element.r element.index = element.r
}); });
for (let i = 0; i < money.length; i++) { for (let i = 0; i < money.length; i++) {
//编码列 //编码列
if (money[i].r == code[i].r) { if (money[i].r == code[i].r) {
money[i].code = code[i].v.v; money[i].code = code[i].v.v;
} }
...@@ -46,13 +48,10 @@ export function hongMine(money, Department, code, name, codess, newArrayhong) { ...@@ -46,13 +48,10 @@ export function hongMine(money, Department, code, name, codess, newArrayhong) {
} }
money[k].coloumn = codess[i].oneLevel * 1 money[k].coloumn = codess[i].oneLevel * 1
} }
let Officeexpenses = columnIdString.substring(0, 4)
if (Officeexpenses == '6601') {
money[k].coloumn = 9
}
} }
} }
money.forEach(obj => { money.forEach(obj => {
let matchedItems = newArrayhong[0]["celldata"].filter(item => item.v && item.v.v && item.v.v.includes(obj.v.Department)); let matchedItems = newArrayhong[0]["celldata"].filter(item => item.v && item.v.v && item.v.v.includes(obj.v.Department));
if (matchedItems.length > 0) { if (matchedItems.length > 0) {
...@@ -61,7 +60,15 @@ export function hongMine(money, Department, code, name, codess, newArrayhong) { ...@@ -61,7 +60,15 @@ export function hongMine(money, Department, code, name, codess, newArrayhong) {
obj.row = ''; obj.row = '';
} }
}); });
for (let k = 0; k < money.length; k++) {
let columnIdString = String(money[k].code);
let Officeexpenses = columnIdString.substring(0, 4)
if (Officeexpenses == '6601' && money[k].row < 17) {
money[k].coloumn = 9
}
}
money.forEach((item) => { money.forEach((item) => {
item.c = item.coloumn ? item.coloumn * 1 : 10; item.c = item.coloumn ? item.coloumn * 1 : 10;
item.r = item.row ? item.row * 1 : '' item.r = item.row ? item.row * 1 : ''
}); });
...@@ -107,18 +114,24 @@ export function hongMine(money, Department, code, name, codess, newArrayhong) { ...@@ -107,18 +114,24 @@ export function hongMine(money, Department, code, name, codess, newArrayhong) {
} }
} }
} }
let matchedItems = newArrayhong[0]["celldata"].filter(item => item.v && (typeof item.v.v === 'string' && item.v.v.includes('办公费用') || typeof item.v.m === 'string' && item.v.m.includes('办公费用')))[0].r; let matchedItems = newArrayhong[0]["celldata"].filter(item => item.v && (typeof item.v.v === 'string' && item.v.v.includes('办公费用') || typeof item.v.m === 'string' && item.v.m.includes('办公费用')))[0].c;
duplicateData.forEach(obj => {
if (obj.c === matchedItems ) { let other = newArrayhong[0]["celldata"].filter(item => item.v && (typeof item.v.v === 'string' && item.v.v == '其他材料' || typeof item.v.m === 'string' && item.v.m == '其他材料'))[0].c;
let duplicateJSON = JSON.stringify(duplicateData)
duplicateJSON = JSON.parse(duplicateJSON)
duplicateJSON.forEach(obj => {
if (obj.c === matchedItems) {
obj.v.name = '管理费用-'; obj.v.name = '管理费用-';
}else if(obj.Department=='洗煤厂'){ obj.c = other;
obj.v.name='制造费用—选混煤' } else if (obj.v.Department === '洗煤厂') {
}else { obj.v.name = '制造费用-选混煤';
obj.v.name='基本生产-原煤' obj.c=other
} else {
obj.v.name = '基本生产-原煤';
} }
}); });
let duplicateDatas = { let duplicateDatas = {
duplicateData: duplicateData, duplicateData: duplicateJSON,
CompositeTable: newArrayhong CompositeTable: newArrayhong
} }
return duplicateDatas return duplicateDatas
......
export function lvMine(CompositeTable,cjson,codess) { export function lvMine(CompositeTable,cjson,codess) {
let results = ['10.安全费用', '11.研究费用', '12.维简及井巷费'] let results = ['10.安全费用', '11.研究费用', '12.维简及井巷费']
//先把安全费用 研发什么的插入到成本材料表中 //先把安全费用 研发什么的插入到成本材料表中
let insert=CompositeTable[0].celldata.filter(obj=>obj.v.v=='9.专项储备')[0].r
for (let i = 0, k = 0; i < CompositeTable[0].celldata.length && k < results.length; i++) { for (let i = 0, k = 0; i < CompositeTable[0].celldata.length && k < results.length; i++) {
if (CompositeTable[0].celldata[i] && CompositeTable[0].celldata[i].r && CompositeTable[0].celldata[i].r >= 23 && CompositeTable[0].celldata[i].r < 26 && CompositeTable[0].celldata[i].c == 0) { if (CompositeTable[0].celldata[i] && CompositeTable[0].celldata[i].r && CompositeTable[0].celldata[i].r >= insert+1 && CompositeTable[0].celldata[i].r < insert+4 && CompositeTable[0].celldata[i].c == 0) {
CompositeTable[0].celldata[i].v.v = results[k]; CompositeTable[0].celldata[i].v.v = results[k];
CompositeTable[0].celldata[i].v.m = results[k]; CompositeTable[0].celldata[i].v.m = results[k];
k++; k++;
...@@ -54,7 +55,7 @@ export function lvMine(CompositeTable,cjson,codess) { ...@@ -54,7 +55,7 @@ export function lvMine(CompositeTable,cjson,codess) {
max.forEach(obj => { max.forEach(obj => {
if (obj.r > 0 && obj.c >= min) { if (obj.r > 0 && obj.c >= min) {
let coulumn = obj.c; let coulumn = obj.c;
obj.v.name = max.find(c => c.c === coulumn && c.r === 0).v.v; obj.v.name = max.find(c => c.c === coulumn && c.r === 0)?.v.v;
obj.category = max.find(c => c.c === coulumn && c.r === 1)?.v.v; obj.category = max.find(c => c.c === coulumn && c.r === 1)?.v.v;
} }
}); });
...@@ -70,19 +71,18 @@ export function lvMine(CompositeTable,cjson,codess) { ...@@ -70,19 +71,18 @@ export function lvMine(CompositeTable,cjson,codess) {
}); });
const money = moneycolumn.filter(obj => (obj.category.includes('单价') || obj.category.includes('数量'))); const money = moneycolumn.filter(obj => (obj.category.includes('单价') || obj.category.includes('数量')));
// 计算总金额 // 计算总金额
const result = []; const moneys=money.filter(obj=>obj.category=='出库单价')
const map = new Map(); moneys.forEach(item=>{
money.forEach(item => { item.v.quantity=money.filter(obj=>obj.r==item.r&&obj.c==item.c-1)[0].v.v
if (map.has(item.r)) { if(item.v.v && item.v.quantity){
const existingItem = map.get(item.r); item.v.v=item.v.v*item.v.quantity
existingItem.v.v *= parseFloat(item.v.v); item.v.m=item.v.v
} else { }else{
map.set(item.r, { ...item, v: { ...item.v, v: parseFloat(item.v.v) }, category: "总金额" }); this.$message.error('请仔细检查所导入表');
} }
}); })
map.forEach(value => result.push(value));
// 对 部门分类 进行处理 // 对 部门分类 进行处理
const duplicateDatas = result.map(item => { moneys.forEach(item => {
let categories = item.v.name; let categories = item.v.name;
if (categories.includes('--') || categories.includes('-')) { if (categories.includes('--') || categories.includes('-')) {
categories = categories.replace(/--/g, '-'); categories = categories.replace(/--/g, '-');
...@@ -92,7 +92,7 @@ export function lvMine(CompositeTable,cjson,codess) { ...@@ -92,7 +92,7 @@ export function lvMine(CompositeTable,cjson,codess) {
item.v.name = categories; item.v.name = categories;
return item; return item;
}); });
duplicateDatas.forEach(item => { moneys.forEach(item => {
item.index = item.r item.index = item.r
if (item.v.name !== undefined) { if (item.v.name !== undefined) {
let index = item.v.name.indexOf("-"); let index = item.v.name.indexOf("-");
...@@ -136,19 +136,22 @@ export function lvMine(CompositeTable,cjson,codess) { ...@@ -136,19 +136,22 @@ export function lvMine(CompositeTable,cjson,codess) {
codess.forEach(codeItem => { codess.forEach(codeItem => {
let codeLength = String(codeItem.code).length; let codeLength = String(codeItem.code).length;
let codeToCompare = String(codeItem.code).substring(0, codeLength); let codeToCompare = String(codeItem.code).substring(0, codeLength);
let matchingItem = duplicateDatas.find(duplicateItem => String(duplicateItem.code).startsWith(codeToCompare)); let matchingItem = moneys.find(duplicateItem => String(duplicateItem.code).startsWith(codeToCompare));
if (matchingItem) { if (matchingItem) {
matchingItem.cc = codeItem.oneLevel * 1; matchingItem.cc = codeItem.oneLevel * 1;
} }
}); });
duplicateDatas.forEach((item) => { moneys.forEach((item) => {
item.c = item.cc ? item.cc * 1 : 10; item.c = item.cc ? item.cc * 1 : 10;
if(item.r>8){
item.c=10
}
}); });
//同一个单元格的数据 金额相加。 //同一个单元格的数据 金额相加。
let duplicateData = []; let duplicateData = [];
let seen = new Map(); let seen = new Map();
// 根据行列信息合并重复数据并记录索引 // 根据行列信息合并重复数据并记录索引
for (let obj of duplicateDatas) { for (let obj of moneys) {
let key = obj.r + ',' + obj.c; let key = obj.r + ',' + obj.c;
if (seen.has(key)) { if (seen.has(key)) {
let existingObj = seen.get(key); let existingObj = seen.get(key);
...@@ -186,6 +189,7 @@ export function lvMine(CompositeTable,cjson,codess) { ...@@ -186,6 +189,7 @@ export function lvMine(CompositeTable,cjson,codess) {
} }
} }
} }
duplicateData = duplicateData.filter(item => !item.v.name.includes('研发费用')&&!item.v.name.includes('安全费用')&&!item.v.name.includes('维简及井巷费'));
let duplic={ let duplic={
duplicateData:duplicateData, duplicateData:duplicateData,
CompositeTable:CompositeTable CompositeTable:CompositeTable
......
...@@ -11,7 +11,6 @@ import App from './App' ...@@ -11,7 +11,6 @@ import App from './App'
import store from './store' import store from './store'
import router from './router' import router from './router'
import permission from './directive/permission' import permission from './directive/permission'
import './assets/icons' // icon import './assets/icons' // icon
import './permission' // permission control import './permission' // permission control
import { getDicts } from "@/api/system/dict/data"; import { getDicts } from "@/api/system/dict/data";
......
<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($event, {
name: '钱家营',
id: '010105'
}, '010105')" filterable
placeholder="请选择您要查看的模板">
<el-option v-for="item in depss" :key="item.id" :label="item.templateName" :value="item.id"
:disabled="item.disabled">
</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>
<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-button :plain="true" style="display: none;" @click="open4">错误</el-button>
</el-col>
</el-row>
<!-- luckysheet容器 -->
<div id="luckysheet" style="margin: 0px; padding: 0px; position: absolute; width: 100%; height:80vh; z-index: 0">
</div>
<div v-if="showMask" class="mask">
<div class="loading-spinner"></div>
</div>
</div>
</template>
<script src="@/conversion/conversion"></script>
<style scoped src="./actsuppMine.css"></style>
...@@ -54,4 +54,5 @@ ...@@ -54,4 +54,5 @@
</div> </div>
</template> </template>
<script src="@/conversion/conversion"></script> <script src="@/conversion/conversion"></script>
<style scoped src="./actsuppMine.css"></style> <style scoped src="./actsuppMine.css"></style>
...@@ -107,10 +107,6 @@ export default { ...@@ -107,10 +107,6 @@ export default {
name: '东欢坨矿', name: '东欢坨矿',
id: '010102' id: '010102'
}, },
{
name: '范矿',
id: 2
},
{ {
name: '范各庄', name: '范各庄',
id: '011701' id: '011701'
......
This diff is collapsed.
...@@ -27,15 +27,15 @@ module.exports = { ...@@ -27,15 +27,15 @@ module.exports = {
productionSourceMap: false, productionSourceMap: false,
// webpack-dev-server 相关配置 // webpack-dev-server 相关配置
devServer: { devServer: {
// host: '0.0.0.0', // host: 'localhost',
port: port, port: port,
open: true, open: true,
proxy: { proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
// target: `http://192.168.0.111:8080`, target: `http://192.168.0.88:8080`,
// target: `http://localhost:5001`, // target: `http://localhost:5001`,
target: `http://localhost:8080`, // target: `http://192.168.111.228:8080`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
......
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