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
......
......@@ -4,6 +4,196 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.WagesDetailsMapper">
<resultMap type="com.ruoyi.system.model.wages.dao.WagesDetailsExcelDAO" id="WagesDetailsResult">
<result property="id" column="id" />
<result property="a1" column="a1" />
<result property="a2" column="a2" />
<result property="a3" column="a3" />
<result property="a4" column="a4" />
<result property="a5" column="a5" />
<result property="a6" column="a6" />
<result property="a7" column="a7" />
<result property="a8" column="a8" />
<result property="a9" column="a9" />
<result property="a10" column="a10" />
<result property="a11" column="a11" />
<result property="a12" column="a12" />
<result property="a13" column="a13" />
<result property="a14" column="a14" />
<result property="a15" column="a15" />
<result property="a16" column="a16" />
<result property="a17" column="a17" />
<result property="a18" column="a18" />
<result property="a19" column="a19" />
<result property="a20" column="a20" />
<result property="a21" column="a21" />
<result property="a22" column="a22" />
<result property="a23" column="a23" />
<result property="a24" column="a24" />
<result property="a25" column="a25" />
<result property="a26" column="a26" />
<result property="a27" column="a27" />
<result property="a28" column="a28" />
<result property="a29" column="a29" />
<result property="a30" column="a30" />
<result property="a31" column="a31" />
<result property="a32" column="a32" />
<result property="a33" column="a33" />
<result property="a34" column="a34" />
<result property="a35" column="a35" />
<result property="a36" column="a36" />
<result property="a37" column="a37" />
<result property="a38" column="a38" />
<result property="a39" column="a39" />
<result property="a40" column="a40" />
<result property="a41" column="a41" />
<result property="a42" column="a42" />
<result property="a43" column="a43" />
<result property="a44" column="a44" />
<result property="a45" column="a45" />
<result property="a46" column="a46" />
<result property="a47" column="a47" />
<result property="a48" column="a48" />
<result property="a49" column="a49" />
<result property="a50" column="a50" />
<result property="a51" column="a51" />
<result property="a52" column="a52" />
<result property="a53" column="a53" />
<result property="a54" column="a54" />
<result property="a55" column="a55" />
<result property="a56" column="a56" />
<result property="a57" column="a57" />
<result property="a58" column="a58" />
<result property="a59" column="a59" />
<result property="a60" column="a60" />
<result property="a61" column="a61" />
<result property="a62" column="a62" />
<result property="a63" column="a63" />
<result property="a64" column="a64" />
<result property="a65" column="a65" />
<result property="a66" column="a66" />
<result property="a67" column="a67" />
<result property="a68" column="a68" />
<result property="a69" column="a69" />
<result property="a70" column="a70" />
<result property="a71" column="a71" />
<result property="a72" column="a72" />
<result property="a73" column="a73" />
<result property="a74" column="a74" />
<result property="a75" column="a75" />
<result property="a76" column="a76" />
<result property="a77" column="a77" />
<result property="a78" column="a78" />
<result property="a79" column="a79" />
<result property="a80" column="a80" />
<result property="a81" column="a81" />
<result property="a82" column="a82" />
<result property="a83" column="a83" />
<result property="a84" column="a84" />
<result property="a85" column="a85" />
<result property="a86" column="a86" />
<result property="a87" column="a87" />
<result property="a88" column="a88" />
<result property="a89" column="a89" />
<result property="a90" column="a90" />
<result property="a91" column="a91" />
<result property="a92" column="a92" />
<result property="a93" column="a93" />
<result property="a94" column="a94" />
<result property="a95" column="a95" />
<result property="a96" column="a96" />
<result property="a97" column="a97" />
<result property="a98" column="a98" />
<result property="a99" column="a99" />
<result property="a100" column="a100" />
<result property="a101" column="a101" />
<result property="a102" column="a102" />
<result property="a103" column="a103" />
<result property="a104" column="a104" />
<result property="a105" column="a105" />
<result property="a106" column="a106" />
<result property="a107" column="a107" />
<result property="a108" column="a108" />
<result property="a109" column="a109" />
<result property="a110" column="a110" />
<result property="a111" column="a111" />
<result property="a112" column="a112" />
<result property="a113" column="a113" />
<result property="a114" column="a114" />
<result property="a115" column="a115" />
<result property="a116" column="a116" />
<result property="a117" column="a117" />
<result property="a118" column="a118" />
<result property="a119" column="a119" />
<result property="a120" column="a120" />
<result property="a121" column="a121" />
<result property="a122" column="a122" />
<result property="a123" column="a123" />
<result property="a124" column="a124" />
<result property="a125" column="a125" />
<result property="a126" column="a126" />
<result property="a127" column="a127" />
<result property="a128" column="a128" />
<result property="a129" column="a129" />
<result property="a130" column="a130" />
<result property="a131" column="a131" />
<result property="a132" column="a132" />
<result property="a133" column="a133" />
<result property="a134" column="a134" />
<result property="a135" column="a135" />
<result property="a136" column="a136" />
<result property="a137" column="a137" />
<result property="a138" column="a138" />
<result property="a139" column="a139" />
<result property="a140" column="a140" />
<result property="a141" column="a141" />
<result property="a142" column="a142" />
<result property="a143" column="a143" />
<result property="a144" column="a144" />
<result property="a145" column="a145" />
<result property="a146" column="a146" />
<result property="a147" column="a147" />
<result property="a148" column="a148" />
<result property="a149" column="a149" />
<result property="a150" column="a150" />
<result property="a151" column="a151" />
<result property="a152" column="a152" />
<result property="a153" column="a153" />
<result property="a154" column="a154" />
<result property="a155" column="a155" />
<result property="a156" column="a156" />
<result property="a157" column="a157" />
<result property="a158" column="a158" />
<result property="a159" column="a159" />
<result property="a160" column="a160" />
<result property="a161" column="a161" />
<result property="a162" column="a162" />
<result property="a163" column="a163" />
<result property="a164" column="a164" />
<result property="a165" column="a165" />
<result property="a166" column="a166" />
<result property="a167" column="a167" />
<result property="a168" column="a168" />
<result property="a169" column="a169" />
<result property="a170" column="a170" />
<result property="a171" column="a171" />
<result property="a172" column="a172" />
<result property="a173" column="a173" />
<result property="a174" column="a174" />
<result property="a175" column="a175" />
<result property="a176" column="a176" />
<result property="a177" column="a177" />
<result property="a178" column="a178" />
<result property="a179" column="a179" />
<result property="a180" column="a180" />
<result property="mineId" column="mine_id" />
<result property="importTime" column="import_time" />
<result property="comparisonId" column="comparison_id" />
</resultMap>
<sql id="selectWagesDetailsVo">
select id, 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, a64, a65, a66, a67, a68, a69, a70, a71, a72, a73, a74, a75, a76, a77, a78, a79, a80, a81, a82, a83, a84, a85, a86, a87, a88, a89, a90, a91, a92, a93, a94, a95, a96, a97, a98, a99, a100, a101, a102, a103, a104, a105, a106, a107, a108, a109, a110, a111, a112, a113, a114, a115, a116, a117, a118, a119, a120, a121, a122, a123, a124, a125, a126, a127, a128, a129, a130, a131, a132, a133, a134, a135, a136, a137, a138, a139, a140, a141, a142, a143, a144, a145, a146, a147, a148, a149, a150, a151, a152, a153, a154, a155, a156, a157, a158, a159, a160, a161, a162, a163, a164, a165, a166, a167, a168, a169, a170, a171, a172, a173, a174, a175, a176, a177, a178, a179, a180, mine_id, import_time, comparison_id from wages_details
</sql>
<insert id="insertBatch">
insert into wages_details (a1,
a2,
......@@ -376,4 +566,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where mine_id = #{mineId} and import_time = #{date}
and comparison_id = #{comparisonId}
</delete>
<select id="selectByDate" resultMap="WagesDetailsResult" parameterType="java.lang.String">
<include refid="selectWagesDetailsVo"/>
where import_time = #{date}
</select>
</mapper>
\ No newline at end of file
......@@ -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