Commit 7c65d2c1 authored by 刘_震's avatar 刘_震

汇总接口的部分实现

parent 52355178
......@@ -22,4 +22,6 @@ public interface WagesCompilationMapper {
List<WagesCompilationExcelDAO> selectByMineIdAndType(@Param("mineId") String mineId, @Param("type") String type);
WagesCompilationExcelDAO selectByMineIdAndTypeAndVersionId(@Param("mineId")String mineId, @Param("type")String type, @Param("versionId") Integer versionId);
List<WagesCompilationExcelDAO> selectByComparisonId(Integer comparisonId);
}
......@@ -16,4 +16,6 @@ public interface WagesDetailsMapper {
void deleteBatch(@Param("mineId") String mineId, @Param("date") String date, @Param("comparisonId") Integer comparisonId);
List<WagesDetailsExcelDAO> selectByDate(@Param("date") String date);
}
......@@ -2,7 +2,9 @@ package com.ruoyi.system.service;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.system.model.wages.dao.WagesDetailsOriginalExcelDAO;
import com.ruoyi.system.model.wages.dto.WagesExcelDto;
import com.ruoyi.system.model.wages.dto.WagesFormulaDto;
import com.ruoyi.system.model.wages.dto.WagesFormulaListDto;
import com.ruoyi.system.model.wages.vo.WagesFormulaVo;
import com.ruoyi.system.model.wages.vo.WagesOverviewOriginalDataVO;
import org.springframework.web.multipart.MultipartFile;
......@@ -20,5 +22,8 @@ public interface WagesService {
JSONObject selectWagesVoucherList(String s);
String linXiExcelAnalysisWages(WagesExcelDto wagesExcelDto);
String linXiExcelAnalysisWages(MultipartFile file, String date, String mineId);
List<WagesFormulaVo> lxSummary(WagesFormulaListDto wagesFormulaListDto);
}
......@@ -287,9 +287,6 @@ public class WagesCalculateConversionServiceImpl implements WagesCalculateConver
}
return value;
}
//解析公式
private Map<String, List<String>> extractOperands(String value) {
Map<String, List<String>> operandsMap = new HashMap<>();
List<String> operands = new ArrayList<>();
......
......@@ -7,13 +7,12 @@ import com.alibaba.fastjson.JSONObject;
import com.ruoyi.system.common.ReturnResult;
import com.ruoyi.system.constant.ApiConstant;
import com.ruoyi.system.listener.ExcelListener;
import com.ruoyi.system.mapper.WagesDetailsMapper;
import com.ruoyi.system.mapper.WagesMapper;
import com.ruoyi.system.mapper.WagesSalaryProofMapper;
import com.ruoyi.system.mapper.WagesVersionMapper;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.model.doc.CustomDocRequestModel;
import com.ruoyi.system.model.wages.dao.*;
import com.ruoyi.system.model.wages.dto.WagesExcelDto;
import com.ruoyi.system.model.wages.dto.WagesFormulaDto;
import com.ruoyi.system.model.wages.dto.WagesFormulaListDto;
import com.ruoyi.system.model.wages.vo.WagesFormulaVo;
import com.ruoyi.system.model.wages.vo.WagesOverviewOriginalDataVO;
import com.ruoyi.system.service.WagesService;
import com.ruoyi.system.utils.WagesUtils;
......@@ -32,10 +31,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -53,6 +49,7 @@ public class WagesServiceImpl implements WagesService {
private final WagesDetailsMapper detailsMapper;
private final WagesUtils wagesUtils;
private final WagesVersionMapper wagesVersionMapper;
private final WagesCompilationMapper compilationMapper;
@Transactional
@Override
......@@ -229,11 +226,8 @@ public class WagesServiceImpl implements WagesService {
/**
* 通用导入
*/
public String linXiExcelAnalysisWages(WagesExcelDto wagesExcelDto) {
public String linXiExcelAnalysisWages(MultipartFile file, String date, String mineId) {
try {
MultipartFile file = wagesExcelDto.getFile();
String date = wagesExcelDto.getDate();
String mineId = wagesExcelDto.getMineId();
// 查询有效(启用)的版本id
List<String> list = wagesVersionMapper.selectByVersionIdToMineId(mineId);
// 查询所有有效的对照信息
......@@ -279,29 +273,13 @@ public class WagesServiceImpl implements WagesService {
List<String> filterList = Arrays.asList("小计", "合计", "总计", "研发人员小计", "全矿总计");
for (int i = 0; i < idList.size(); i++) {
Integer integer = idList.get(i);
// 林西表特殊处理
if ("011704".equals(mineId)) {
if (integer == 1) {
if (wagesExcelDto.getIdentification() == null){
return "请填写excel表类型";
}
integer = wagesExcelDto.getIdentification().equals("0") ? 1 : 4;
}
if (integer == 2 || integer == 3) {
if (wagesExcelDto.getIdentification() == null){
return "请填写excel表类型";
}
integer = wagesExcelDto.getIdentification().equals("0") ? 2 : 3;
}
}
detailsMapper.deleteBatch(mineId, date, integer);
InputStream inputStream = file.getInputStream();
List<WagesDetailsExcelDAO> wagesList = EasyExcelFactory.read(inputStream, WagesDetailsExcelDAO.class, new ExcelListener<WagesDetailsExcelDAO>()).sheet(i).headRowNumber(2).doReadSync();
inputStream.close();
Integer finalInteger = integer;
wagesList = wagesList.parallelStream()
.filter(v -> !filterList.contains(v.getA1()))
.peek(v -> v.setComparisonId(finalInteger)).collect(Collectors.toList());
.peek(v -> v.setComparisonId(integer)).collect(Collectors.toList());
wagesDetailsMapper.insertBatch(date, wagesList, mineId);
}
} catch (Exception e) {
......@@ -310,6 +288,73 @@ public class WagesServiceImpl implements WagesService {
return "完成";
}
@Override
public List<WagesFormulaVo> lxSummary(WagesFormulaListDto wagesFormulaListDto) {
//定义一个集合用来存储前端所需要的返回值
List<WagesFormulaVo> wagesFormulaVos = new ArrayList<>();
//获取前端传的参数
List<WagesFormulaDto> data = wagesFormulaListDto.getData();
//获取传进来的日期
String date = wagesFormulaListDto.getDate();
//根据日期查取相关数据
List<WagesDetailsExcelDAO> lists = wagesDetailsMapper.selectByDate(date);
//判断传进来的日期是否为空,如果为空则返回null
int size = lists.size();
if (size == 0) {
return null;
}
for (WagesFormulaDto wagesFormulaDto : data) {
String value = wagesFormulaDto.getValue();
//解析公式value
Map<String, List<String>> operandsMap = extractOperands(value);
//只含公式中的字段
List<String> formula = operandsMap.get("operands");
}
return wagesFormulaVos;
}
//解析公式value
private Map<String, List<String>> extractOperands(String value) {
Map<String, List<String>> operandsMap = new HashMap<>();
List<String> operands = new ArrayList<>();
List<String> operators = new ArrayList<>();
StringBuilder operandBuilder = new StringBuilder();
for (char c : value.toCharArray()) {
if (isOperator(c)) {
if (operandBuilder.length() > 0) {
operands.add(operandBuilder.toString().trim());
operandBuilder = new StringBuilder();
}
operators.add(String.valueOf(c));
} else {
operandBuilder.append(c);
}
}
if (operandBuilder.length() > 0) {
operands.add(operandBuilder.toString().trim());
}
operandsMap.put("operands", operands);
operandsMap.put("operators", operators);
return operandsMap;
}
//判断是否是操作符
private boolean isOperator(char c) {
return c == '+' || c == '-' || c == '*' || c == '/';
}
public JSONArray getCustomDoc(CustomDocRequestModel customDocRequestModel) {
ReturnResult customDocument = VoucherUtils.callVoucherQuery(customDocRequestModel, "/yonbip/digitalModel/customerdoc/list");
......
......@@ -410,6 +410,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectWagesComparationVerticalVo"/>
where mine_id = #{mineId} and type = #{type} and version_id = #{versionId}
</select>
<select id="selectByComparisonId" resultType="com.ruoyi.system.model.wages.dao.WagesCompilationExcelDAO"
parameterType="java.lang.Integer">
<include refid="selectWagesComparationVerticalVo"/>
where comparison_id = #{comparisonId}
</select>
<insert id="insertBatch" parameterType="com.ruoyi.system.model.wages.dao.WagesCompilationExcelDAO" useGeneratedKeys="true" keyProperty="comparisonId">
insert into wages_comparation_vertical
......
......@@ -20,7 +20,7 @@
<update id="updateByWagesVersionToTypeAndMineId">
update wages_version
set open_or_close = '0'
where type = #{type} and mine_id = #{mindId};
where type = #{type} and mine_id = #{mineId};
</update>
<select id="selectByVersionId" resultMap="WagesVersionResult">
<include refid="selectWagesVersionVo"/>
......@@ -28,7 +28,7 @@
<select id="selectByVersionIdToMineId" resultType="java.lang.String">
select version_id
from wages_version
where mine_id = #{mindId} and open_or_close = '1'
where mine_id = #{mindId} and open_or_close = '1'
</select>
<select id="selectByWagesVersionToTypeAndMineId" resultType="java.lang.String">
select version_id
......
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