Commit a4fb04dd authored by 刘_震's avatar 刘_震

根据编码找到对应的一级,二级分类名称以及前端代码

parent 528ea3fb
## 开发1
## 开发
```bash
# 克隆项目
......
This diff is collapsed.
// 工资汇总
import request from '@/utils/request'
import request from "@/utils/request";
// 新增
export function conversionSave(data) {
return request({
url: '/conversion/save',
method: 'post',
data: data
})
return request({
url: "/conversion/save",
method: "post",
data: data,
});
}
// 工资汇总列表
export function conversionGetWagesData(query) {
return request({ url: '/conversion/getWagesData', method: 'get', params: query })
return request({
url: "/conversion/getWagesData",
method: "post",
data: query,
});
}
// 修改
export function conversionUpdate(data) {
return request({ url: '/conversion/update', method: 'post', data })
return request({ url: "/conversion/update", method: "post", data });
}
export function getWagesDataById(id) {
return request({ url: `/conversion/getWagesDataById/${id}`, method: 'get' })
return request({
url: `/conversion/getWagesDataById/${id}`,
method: "get",
});
}
//唐山矿工资转换
export function surface(data) {
return request({
url: '/wages/calculate/surface',
method: 'post',
data: data
})
return request({
url: "/wages/calculate/surface",
method: "post",
data: data,
});
}
//获取最近的公式
export function getRecentFormulas(id) {
return request({ url: '/conversion/recentFormulas', method: 'get'})
export function getRecentFormulas(mineId) {
return request({
url: `/conversion/recentFormulas/${mineId}`,
method: "get"
});
}
//=======林西矿接口
//
export function importLxWagesExcel(data) {
return request({
url: "/wages/lxWages",
method: "post",
headers: {
"Content-Type": "multipart/form-data",
},
data: data,
});
}
//林西矿工资汇总
export function lxSummary(data) {
return request({
url: "/wages/lxSummary",
method: "post",
data: data,
});
}
//对照表接口
export function compilationExcel(data) {
return request({
url: "/wages/compilation/excel",
method: "post",
headers: {
"Content-Type": "multipart/form-data",
},
data: data,
});
}
//对照表列表查询
export function getWagesCompilationList() {
return request({
url: "/wages/compilation/list",
method: "get"
});
}
......@@ -32,19 +32,19 @@ export function Linxi(names, Department, money, code, duplicateData, CompositeTa
}
});
});
// 删除指定分类
const filteredClassifications = ["研发费用", "基金", "安全费用"];
money = money.filter(item => !filteredClassifications.includes(item.classify));
// // 删除指定分类
// const filteredClassifications = ["研发费用", "基金", "安全费用"];
// money = money.filter(item => !filteredClassifications.includes(item.classify));
// // 提取特定属性值相同的数据
// const Electromechanical = "机电制造分公司";
// money = money.filter(item => item.remark !== Electromechanical);
// 替换属性值
money.forEach(item => {
if (item.head === "坑木") item.head = "木材";
if (!item.remark) item.v.name = "基本生产-原煤";
});
// 提取特定属性值相同的数据
const Electromechanical = "机电制造分公司";
money = money.filter(item => item.remark !== Electromechanical);
// // 对比替换导入表和模板的列数
codess.forEach(code => {
let codeLength = String(code.code).length;
......
......@@ -312,17 +312,6 @@ export function MoneyMine(money, DepartmentColumns, name, materianame, c, Compos
Fusion.v.m=item.v.v
CompositeTable[0]["celldata"].push(Fusion)
})
// 替换金额所在列和行相同的模板表中的数据
//金额所在列和行,去模板表中查找,如果行列一致则替换
// 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
......
......@@ -31,21 +31,6 @@ export function Tangshan(money, c, name, CompositeTable, headRow, researchs) {
}
return null;
}
// money.forEach(obj => {
// researchs.forEach(item => {
// if (obj.r == item.r) {
// obj.research = item.v.v
// }
// })
// research.forEach(item => {
// if (obj.research == item.old) {
// if (item.new) {
// obj.research = item.new
// }
// }
// })
// })
let targetValue = "器材大类";
let resultObject = findValueInArray(c, targetValue);
let material = c.flat().filter(obj => obj.c && obj.c == resultObject.c && obj.r > headRow)
......@@ -64,9 +49,6 @@ export function Tangshan(money, c, name, CompositeTable, headRow, researchs) {
money[i].v.material = material[i].v.v;
}
}
// money = money.filter(obj => obj.v.name == "基本生产" || obj.v.name == "制造费用" || obj.v.name.includes('洗煤') || obj.v.name == "其他业务成本" || obj.v.name == "其他费用" || obj.v.name == "管理费用" || obj.v.name == "销售费用")
//对费用来源列和材料分类列进行处理
money.forEach(obj => {
if (!obj.v.material) {
......
......@@ -97,31 +97,6 @@ export function YunFei(money, Department, code, name, codess, newArrayhong) {
}
};
});
// console.log(duplicateData)
// duplicateData.forEach(item => {
// const Fusion = {
// "r": '',
// "c": '',
// "v": {
// "ct": {
// "fa": "@",
// "t": "s"
// },
// "fs": 8,
// "ff": "微软雅黑",
// "tb": 2,
// "v": "",
// "qp": 1,
// "m": ""
// }
// };
// Fusion.r=item.r
// Fusion.c=item.c
// Fusion.v.v=item.v.v
// Fusion.v.m=item.v.v
// newArrayhong[0]["celldata"].push(Fusion)
// })
// 替换原始数据中的重复单元格数据
//金额所在列和行,去模板表中查找,如果行列一致则替换
for (let i = 0; i < duplicateData.length; i++) {
// // 对比 c 和 r 是否与 newArrayhong[0]["celldata"] 中相应对象相同
......
......@@ -183,7 +183,6 @@ export function ZhongRun(Department, money, materianame, name, CompositeTable, q
})
Secondcoloumn.forEach(item => {
CompositeTable[0].celldata.forEach(obj => {
if (obj.v && obj.v.v && obj.v.v.includes(item.materianame)) {
item.r = obj.r
}
......
This diff is collapsed.
......@@ -14,7 +14,6 @@ export function hongMine(money, Department, code, name, codess, newArrayhong) {
for (let i = 0; i < money.length; i++) {
//编码列
if (money[i].r == code[i].r) {
money[i].code = code[i].v.v;
}
......@@ -27,7 +26,6 @@ export function hongMine(money, Department, code, name, codess, newArrayhong) {
money[i].v.name = name[i].v.v;
}
}
console.log(money)
money = money.filter(obj => obj.v.name == '成本费用')
//如果部门里包含洗煤,就给他放到洗煤里
money.forEach((item) => {
......
......@@ -189,7 +189,7 @@ export function lvMine(CompositeTable,cjson,codess,code) {
}
}
}
duplicateData = duplicateData.filter(item => !item.v.name.includes('研发费用')&&!item.v.name.includes('安全费用')&&!item.v.name.includes('维简及井巷费'));
// duplicateData = duplicateData.filter(item => !item.v.name.includes('研发费用')&&!item.v.name.includes('安全费用')&&!item.v.name.includes('维简及井巷费'));
let duplic={
duplicateData:duplicateData,
CompositeTable:CompositeTable
......
This diff is collapsed.
......@@ -3,8 +3,11 @@
<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" filterable placeholder="请选择您要查看的模板"
@change="handleOptionChange">
<el-option v-for="item in depss" :key="item.id" :label="item.templateName" :value="item.id"
@change="handleOptionChange($event, {
name: '唐山矿',
id: '010101'
})">
<el-option v-for="item in depss.filter(item => [1270,1248].includes(item.id))" :key="item.id" :label="item.templateName" :value="item.id"
:disabled="item.disabled">
</el-option>
</el-select>
......@@ -28,12 +31,16 @@
</el-col>
</el-row>
<el-dialog title="取数规则" :visible.sync="dialogTableVisible" :close-on-click-modal="false" :show-close="false">
<el-form label-width="120px">
<el-form label-width="120px" >
<el-form-item v-for="(item, index) in jsonhead" :key="index" :label="`${item.label}`">
<el-input v-model="item.value"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose()">取 消</el-button>
<el-button type="primary" @click="initData()">确 定</el-button>
</span>
</el-dialog>
......
<!--todo 中间工资汇总-->
<template>
<div class="app-container" :class="{'app-container1':views.luckysheet}" v-loading="views.loading">
<template v-if="!views.luckysheet">
<el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px" @submit.native.prevent>
<el-form-item label="标题" prop="historyName">
<el-input
v-model="queryParams.historyName" placeholder="请输入标题" clearable size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="年月" prop="wageMonth">
<el-date-picker v-model="queryParams.wageMonth"
size="mini"
value-format="yyyy-MM" type="month" placeholder="选择月"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
......@@ -71,10 +71,10 @@
</style>
<script>
import { exportExcel } from "../../../../../public/exportExcel"
import { exportExcel } from "/public/exportExcel"
import { debounce } from '@/utils'
import { conversionGetWagesData, conversionUpdate, getWagesDataById } from "@/api/conversion"
import { transformJson, tzcCreateData ,gettransformJson} from "@/utils/tzc"
import { transformJson, tzcCreateData, newGettransformJson } from "@/utils/tzc"
import { getSuppliesTemplate } from "@/api/ruoyi-myLuckyexcel/myluckyexcel"
export default {
......@@ -86,7 +86,7 @@ export default {
total: 0,
pageNum: 1,
pageSize: 10,
historyName: null,
wageMonth: null,
},
views: {
//编辑还是查看 look 查看
......@@ -128,7 +128,7 @@ export default {
let template = await getSuppliesTemplate(1248)
let optionsData = JSON.parse(template.rows[0].templateContent);
// 获取数据
let objks = await gettransformJson(luckysheet.getAllSheets())
let objks = await newGettransformJson(luckysheet.getAllSheets())
this.views.loading = false;
//value 手机号
//this.currentRow.yearMonth 年月
......@@ -142,7 +142,6 @@ export default {
showinfobar: false, //是否显示顶部名称栏
lang: "zh",
})
},
// 修改保存
save () {
......@@ -227,7 +226,9 @@ export default {
// 列表查询
async getList () {
this.views.loading = true
let asyncConversionGetWagesData = await conversionGetWagesData(this.queryParams)
let obj = {...this.queryParams};
delete obj.total;
let asyncConversionGetWagesData = await conversionGetWagesData(obj)
this.views.loading = false
this.historydataList = asyncConversionGetWagesData?.rows || 0
this.queryParams.total = asyncConversionGetWagesData?.total || 0
......
......@@ -33,10 +33,19 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://192.168.0.61:8080`,
// target: `http://192.168.0.192:8080`,
// target: `http://192.168.0.61:8080`,
// target: `http://192.168.111.228:8080`,
// target: `http://192.168.3.247:8080`,
// target: `http://192.168.3.241:8080`,
// target: `http://192.168.0.99:8080`,
//target: `http://192.168.3.247:8080`,
// target: `http://localhost:5001`,
//target: `http://192.168.111.226:8080`,
target: `http://192.168.111.226:8080`,
changeOrigin: true,
pathRewrite: {
......
package com.ruoyi.system.controller;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.model.wages.dao.AsiccDAO;
import com.ruoyi.system.model.wages.vo.AsiccVo;
import com.ruoyi.system.service.AsiccSuppliesService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* @author haiwe
* @date 2024/7/5
*/
@RestController
@RequestMapping("/asicc")
@RequiredArgsConstructor
public class AsiccSuppliesController {
private final AsiccSuppliesService asiccSuppliesService;
@PostMapping("/data")
public AjaxResult getData(@RequestBody AsiccDAO asiccDAO){
Map<String,Object> voList = asiccSuppliesService.getData(asiccDAO);
if (!voList.isEmpty()) {
return AjaxResult.success(voList);
}else{
return AjaxResult.error();
}
}
}
package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.ActSupplies;
import com.ruoyi.system.domain.ActSuppliesImportCleaningAcc;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author haiwe
* @date 2024/7/5
*/
public interface AsiccSuppliesMapper {
List<ActSuppliesImportCleaningAcc> selectByCodeAndMineId(@Param("mineId") String mineId, @Param("code") String code);
ActSupplies selectByCodes(@Param("codes") String codes);
ActSupplies selectByOneLevel(@Param("oneLevel") String oneLevel);
}
package com.ruoyi.system.model.wages.dao;
import com.ruoyi.system.domain.ActSuppliesImportCleaningAcc;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* @author haiwe
* @date 2024/7/5
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AsiccDAO {
private String mineId;
private List<String> codes;
}
package com.ruoyi.system.model.wages.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author haiwe
* @date 2024/7/5
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AsiccVo {
private String oneLevel;
private String twoLevel;
}
package com.ruoyi.system.service;
import com.ruoyi.system.model.wages.dao.AsiccDAO;
import com.ruoyi.system.model.wages.vo.AsiccVo;
import java.util.List;
import java.util.Map;
/**
* @author haiwe
* @date 2024/7/5
*/
public interface AsiccSuppliesService {
Map<String,Object> getData(AsiccDAO asiccDAO);
}
package com.ruoyi.system.service.impl;
import com.ruoyi.system.domain.ActSupplies;
import com.ruoyi.system.domain.ActSuppliesImportCleaningAcc;
import com.ruoyi.system.mapper.AsiccSuppliesMapper;
import com.ruoyi.system.model.wages.dao.AsiccDAO;
import com.ruoyi.system.model.wages.vo.AsiccVo;
import com.ruoyi.system.service.AsiccSuppliesService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* @author haiwe
* @date 2024/7/5
*/
@Service
@RequiredArgsConstructor
public class AsiccSuppliesServiceImpl implements AsiccSuppliesService {
private final AsiccSuppliesMapper asiccSuppliesMapper;
@Override
public Map<String,Object> getData(AsiccDAO asiccDAO) {
Map<String,Object> map = new HashMap<>();
List<String> codesList = asiccDAO.getCodes();
String mineId = asiccDAO.getMineId();
for (String code : codesList) {
List<String> voList = new ArrayList<>();
List<ActSuppliesImportCleaningAcc> accList = asiccSuppliesMapper.selectByCodeAndMineId(mineId,code);
accList.forEach(acc -> {
String codes = acc.getCategories();
ActSupplies supplies = asiccSuppliesMapper.selectByCodes(codes);
Long level = supplies.getLevel();
if (level == 1) {
String suppliesName = supplies.getSuppliesName();
voList.add(suppliesName);
voList.add(null);
map.put(code, voList);
}else if (level == 2){
//此时为二级分类名称
String twoSupplies = supplies.getSuppliesName();
//获取对应的一级分类
String oneLevel = supplies.getOneLevel();
ActSupplies suppliesInfo = asiccSuppliesMapper.selectByOneLevel(oneLevel);
String oneSupplies = suppliesInfo.getSuppliesName();
voList.add(oneSupplies);
voList.add(twoSupplies);
map.put(code, voList);
}
});
}
return map;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.AsiccSuppliesMapper">
<resultMap type="com.ruoyi.system.domain.ActSupplies" id="ActSuppliesResult">
<result property="id" column="id" />
<result property="oneLevel" column="one_level" />
<result property="twoLevel" column="two_level" />
<result property="threeLevel" column="three_level" />
<result property="codes" column="codes"/>
<result property="suppliesName" column="supplies_name" />
<result property="level" column="level" />
<result property="status" column="status" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<select id="selectByCodeAndMineId" resultType="com.ruoyi.system.domain.ActSuppliesImportCleaningAcc">
select distinct(categories)
from act_supplies_import_cleaning_copy1
where ssk_id = #{mineId} and code_column = #{code}
</select>
<select id="selectByCodes" resultMap="ActSuppliesResult">
select one_level, two_level, three_level, codes, supplies_name, level, status
from act_supplies
where codes = #{codes}
</select>
<select id="selectByOneLevel" resultMap="ActSuppliesResult">
select one_level, two_level, three_level, codes, supplies_name, level, status
from act_supplies
where one_level = #{oneLevel} and level = 1
</select>
</mapper>
\ No newline at end of file
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