Commit 6287ee32 authored by 位宇华's avatar 位宇华

唐山矿代码提交

parent 34218f8b
package com.ruoyi.system.controller; package com.ruoyi.system.controller;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.model.salary.LxSalaryModel;
import com.ruoyi.system.service.LxSalaryService; import com.ruoyi.system.service.LxSalaryService;
import com.ruoyi.system.service.TsSalarySaveService; import com.ruoyi.system.service.TsSalarySaveService;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -26,8 +27,8 @@ public class SalaryController { ...@@ -26,8 +27,8 @@ public class SalaryController {
* @return * @return
*/ */
@PostMapping("/ts/salary") @PostMapping("/ts/salary")
public AjaxResult tsSave(@RequestParam("multipartFile") MultipartFile multipartFile) { public AjaxResult tsSave(@RequestParam("multipartFile") MultipartFile multipartFile,@RequestParam("salaryDate")String salaryDate) {
return salarySaveService.save(multipartFile); return salarySaveService.save(multipartFile,salaryDate);
} }
/** /**
...@@ -37,7 +38,7 @@ public class SalaryController { ...@@ -37,7 +38,7 @@ public class SalaryController {
* @return * @return
*/ */
@PostMapping("/lx/salary") @PostMapping("/lx/salary")
public AjaxResult lxSave(@RequestParam("multipartFile") MultipartFile multipartFile) { public AjaxResult lxSave(@RequestParam("multipartFile") MultipartFile multipartFile, @RequestParam("salaryDate")String salaryDate) {
return lxSalaryService.lxSave(multipartFile); return lxSalaryService.lxSave(multipartFile,salaryDate);
} }
} }
package com.ruoyi.system.listener;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import com.ruoyi.system.model.salary.LxSalaryModel;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
public class LxExcelListener<T> extends AnalysisEventListener<T> {
private final static Logger logger = LoggerFactory.getLogger(LxExcelListener.class);
List<LxSalaryModel> lxSalaryModelList = new ArrayList<>();
private int endRow;
@Override
public void invoke(T t, AnalysisContext analysisContext) {
LxSalaryModel lxSalaryModel = (LxSalaryModel) t;
if (StringUtils.equals("病亡", lxSalaryModel.getOrg())) {
endRow = analysisContext.getCurrentRowNum();
}
int count = analysisContext.getCurrentRowNum();
if (endRow == 0 || (endRow + 1 >= count)) {
lxSalaryModelList.add(lxSalaryModel);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
logger.info("解析完成!");
}
public List<LxSalaryModel> getLxSalaryModelList() {
return lxSalaryModelList;
}
}
...@@ -6,9 +6,10 @@ import com.ruoyi.system.model.salary.SalaryExcelModel; ...@@ -6,9 +6,10 @@ import com.ruoyi.system.model.salary.SalaryExcelModel;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.*;
import java.util.List; import java.util.stream.Collectors;
/** /**
...@@ -16,16 +17,40 @@ import java.util.List; ...@@ -16,16 +17,40 @@ import java.util.List;
*/ */
public class TsExcelListener<T> extends AnalysisEventListener<T> { public class TsExcelListener<T> extends AnalysisEventListener<T> {
private final static Logger logger= LoggerFactory.getLogger(TsExcelListener.class); private final static Logger logger = LoggerFactory.getLogger(TsExcelListener.class);
private int endRow; private int endRow;
private int FINAL_FLAG = 0;
List<SalaryExcelModel> salaryExcelModelList = new ArrayList<>(); List<SalaryExcelModel> salaryExcelModelList = new ArrayList<>();
public final static Map<Integer, String> SOURCE_EXPENSES_MAP = new HashMap<>();
static {
SOURCE_EXPENSES_MAP.put(3, "基本生产原煤");
SOURCE_EXPENSES_MAP.put(4, "基本生产洗煤");
SOURCE_EXPENSES_MAP.put(5, "制造费原煤");
SOURCE_EXPENSES_MAP.put(6, "制造费洗煤");
SOURCE_EXPENSES_MAP.put(7, "劳保费用");
SOURCE_EXPENSES_MAP.put(8, "管理费用");
SOURCE_EXPENSES_MAP.put(9, "其他业务支出");
SOURCE_EXPENSES_MAP.put(10, "研发费用");
}
@Override @Override
public void invoke(T t, AnalysisContext analysisContext) { public void invoke(T t, AnalysisContext analysisContext) {
SalaryExcelModel salaryExcelModel = (SalaryExcelModel) t; SalaryExcelModel salaryExcelModel = (SalaryExcelModel) t;
if (StringUtils.equals("汇总合计", salaryExcelModel.getProjectName())) { int flag = getSourceExpense(salaryExcelModel);
salaryExcelModel.setSourceExpenses(SOURCE_EXPENSES_MAP.get(flag));
//金属厂的费用来源填写金属厂
if (StringUtils.contains(salaryExcelModel.getOrg(), "金属厂")) {
salaryExcelModel.setSourceExpenses("金属厂");
}
if (StringUtils.containsAny(salaryExcelModel.getOrg(), "合计", "汇总")) {
salaryExcelModel.setSourceExpenses(StringUtils.EMPTY);
}
if (StringUtils.equals("汇总合计", salaryExcelModel.getOrg())) {
endRow = analysisContext.getCurrentRowNum(); endRow = analysisContext.getCurrentRowNum();
} }
int count = analysisContext.getCurrentRowNum(); int count = analysisContext.getCurrentRowNum();
...@@ -34,6 +59,7 @@ public class TsExcelListener<T> extends AnalysisEventListener<T> { ...@@ -34,6 +59,7 @@ public class TsExcelListener<T> extends AnalysisEventListener<T> {
} }
} }
@Override @Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) { public void doAfterAllAnalysed(AnalysisContext analysisContext) {
logger.info("解析完成!"); logger.info("解析完成!");
...@@ -42,4 +68,15 @@ public class TsExcelListener<T> extends AnalysisEventListener<T> { ...@@ -42,4 +68,15 @@ public class TsExcelListener<T> extends AnalysisEventListener<T> {
public List<SalaryExcelModel> getSalaryExcelModelList() { public List<SalaryExcelModel> getSalaryExcelModelList() {
return salaryExcelModelList; return salaryExcelModelList;
} }
private int getSourceExpense(SalaryExcelModel salaryExcelModel) {
String org = salaryExcelModel.getOrg();
List<Integer> collect = SOURCE_EXPENSES_MAP.entrySet().stream().filter(v -> StringUtils.contains(org, v.getValue())).map(Map.Entry::getKey).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(collect)) {
FINAL_FLAG = collect.get(0);
}
return FINAL_FLAG;
}
} }
...@@ -12,4 +12,5 @@ public interface SalaryMapper { ...@@ -12,4 +12,5 @@ public interface SalaryMapper {
* @param salaryExcelModelList * @param salaryExcelModelList
*/ */
void save(@Param("salaryExcelModelList") List<SalaryExcelModel> salaryExcelModelList); void save(@Param("salaryExcelModelList") List<SalaryExcelModel> salaryExcelModelList);
} }
package com.ruoyi.system.model.salary;
import com.alibaba.excel.annotation.ExcelProperty;
import java.io.Serializable;
public class LxSalaryModel implements Serializable {
//部门名称
@ExcelProperty(value = "部门名称")
private String org;
//人数
@ExcelProperty(value = "人数")
private String personCount;
//工资合计
@ExcelProperty(value = "工资合计")
private String sumSalary;
//班中餐
@ExcelProperty(value = "班中餐")
private String lunch;
//一孩保健
@ExcelProperty(value = "一孩保健")
private String oneChild;
//荣誉金
@ExcelProperty(value = "荣誉金")
private String honorMoney;
//降温防暑费
@ExcelProperty(value = "降温防暑费")
private String heatPreventSubsidy;
public String getOrg() {
return org;
}
public void setOrg(String org) {
this.org = org;
}
public String getPersonCount() {
return personCount;
}
public void setPersonCount(String personCount) {
this.personCount = personCount;
}
public String getSumSalary() {
return sumSalary;
}
public void setSumSalary(String sumSalary) {
this.sumSalary = sumSalary;
}
public String getLunch() {
return lunch;
}
public void setLunch(String lunch) {
this.lunch = lunch;
}
public String getOneChild() {
return oneChild;
}
public void setOneChild(String oneChild) {
this.oneChild = oneChild;
}
public String getHonorMoney() {
return honorMoney;
}
public void setHonorMoney(String honorMoney) {
this.honorMoney = honorMoney;
}
public String getHeatPreventSubsidy() {
return heatPreventSubsidy;
}
public void setHeatPreventSubsidy(String heatPreventSubsidy) {
this.heatPreventSubsidy = heatPreventSubsidy;
}
}
package com.ruoyi.system.model.salary; package com.ruoyi.system.model.salary;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import java.io.Serializable; import java.io.Serializable;
@ExcelIgnoreUnannotated
public class SalaryExcelModel implements Serializable { public class SalaryExcelModel implements Serializable {
private Integer id; private Integer id;
//项目 //项目
@ExcelProperty(value = "项目") @ExcelProperty(value = "项目")
private String projectName; private String org;
//人数 //人数
@ExcelProperty(value = "人数") @ExcelProperty(value = "人数")
private Integer personCount; private String personCount;
//应付工资 //应付工资
@ExcelProperty(value = "应付工资") @ExcelProperty(value = "应付工资")
private String salary; private String salary;
//医疗补贴 //医疗补贴
@ExcelProperty(value = "医疗补贴") @ExcelProperty(value = "应付工资2(医疗补贴)")
private String medicalSubsidy; private String medicalSubsidy;
//应付工资合计 //应付工资合计
@ExcelProperty(value = "应付工资合计") @ExcelProperty(value = "应付工资合计")
...@@ -86,19 +87,21 @@ public class SalaryExcelModel implements Serializable { ...@@ -86,19 +87,21 @@ public class SalaryExcelModel implements Serializable {
private String modify; private String modify;
public String getProjectName() { private String salaryDate;
return projectName;
public String getOrg() {
return org;
} }
public void setProjectName(String projectName) { public void setOrg(String org) {
this.projectName = projectName; this.org = org;
} }
public Integer getPersonCount() { public String getPersonCount() {
return personCount; return personCount;
} }
public void setPersonCount(Integer personCount) { public void setPersonCount(String personCount) {
this.personCount = personCount; this.personCount = personCount;
} }
...@@ -301,4 +304,12 @@ public class SalaryExcelModel implements Serializable { ...@@ -301,4 +304,12 @@ public class SalaryExcelModel implements Serializable {
public void setModify(String modify) { public void setModify(String modify) {
this.modify = modify; this.modify = modify;
} }
public String getSalaryDate() {
return salaryDate;
}
public void setSalaryDate(String salaryDate) {
this.salaryDate = salaryDate;
}
} }
...@@ -4,5 +4,5 @@ import com.ruoyi.common.core.domain.AjaxResult; ...@@ -4,5 +4,5 @@ import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
public interface LxSalaryService { public interface LxSalaryService {
AjaxResult lxSave(MultipartFile multipartFile); AjaxResult lxSave(MultipartFile multipartFile, String salaryDate);
} }
...@@ -5,5 +5,5 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -5,5 +5,5 @@ import org.springframework.web.multipart.MultipartFile;
public interface TsSalarySaveService { public interface TsSalarySaveService {
AjaxResult save(MultipartFile multipartFile); AjaxResult save(MultipartFile multipartFile, String salaryDate);
} }
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import com.alibaba.excel.EasyExcel;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.listener.LxExcelListener;
import com.ruoyi.system.mapper.SalaryMapper;
import com.ruoyi.system.model.salary.LxSalaryModel;
import com.ruoyi.system.model.salary.SalaryExcelModel;
import com.ruoyi.system.service.LxSalaryService; import com.ruoyi.system.service.LxSalaryService;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service @Service
public class LxSalaryServiceImpl implements LxSalaryService { public class LxSalaryServiceImpl implements LxSalaryService {
private final SalaryMapper salaryMapper;
public LxSalaryServiceImpl(SalaryMapper salaryMapper) {
this.salaryMapper = salaryMapper;
}
@Override @Override
public AjaxResult lxSave(MultipartFile multipartFile) { @SneakyThrows
return null; public AjaxResult lxSave(MultipartFile multipartFile, String salaryDate) {
String originalFilename = multipartFile.getOriginalFilename();
InputStream inputStream = multipartFile.getInputStream();
//传入工资表
if (StringUtils.contains(originalFilename, "工资")) {
LxExcelListener<LxSalaryModel> lxExcelListener = new LxExcelListener<>();
EasyExcel.read(inputStream, LxSalaryModel.class, lxExcelListener).sheet(1).headRowNumber(2).doRead();
List<LxSalaryModel> lxSalaryModelList = lxExcelListener.getLxSalaryModelList();
List<SalaryExcelModel> salaryExcelModelList = getSalaryExcelModelList(lxSalaryModelList).stream().peek(v->{
v.setBelongToCoal("011704");
v.setSalaryDate(salaryDate);
}).collect(Collectors.toList());
salaryMapper.save(salaryExcelModelList);
}
//传入社会保险缴费表
if(StringUtils.equals("保险",originalFilename)){
}
return AjaxResult.success("保存成功!");
}
private List<SalaryExcelModel> getSalaryExcelModelList(List<LxSalaryModel> lxSalaryModelList) {
List<SalaryExcelModel> salaryExcelModelList = new ArrayList<>();
for (LxSalaryModel lxSalaryModel : lxSalaryModelList) {
SalaryExcelModel salaryExcelModel = new SalaryExcelModel();
salaryExcelModel.setOrg(lxSalaryModel.getOrg());
salaryExcelModel.setPersonCount(lxSalaryModel.getPersonCount());
salaryExcelModel.setSumSalary(lxSalaryModel.getSumSalary());
salaryExcelModel.setLunch(lxSalaryModel.getLunch());
salaryExcelModel.setOneChild(lxSalaryModel.getOneChild());
salaryExcelModel.setHonorMoney(lxSalaryModel.getHonorMoney());
salaryExcelModel.setHeatPreventSubsidy(lxSalaryModel.getHeatPreventSubsidy());
salaryExcelModelList.add(salaryExcelModel);
}
return salaryExcelModelList;
} }
} }
...@@ -21,7 +21,7 @@ import java.util.stream.Stream; ...@@ -21,7 +21,7 @@ import java.util.stream.Stream;
@Service @Service
public class TsSalarySaveServiceImpl implements TsSalarySaveService { public class TsSalarySaveServiceImpl implements TsSalarySaveService {
private final static Set<String> COST_CHANNEL_SET = Stream.of("基本生产原煤", "基本生产洗煤", "制造费用原煤", "制造费用洗煤", "选混煤", "其他业务成本", "其他应付款", "管理费用", "销售费用", "其他业务支出").collect(Collectors.toSet()); public final static Set<String> COST_CHANNEL_SET = Stream.of("基本生产原煤", "基本生产洗煤", "制造费用原煤", "制造费用洗煤", "选混煤", "其他业务成本", "其他应付款", "管理费用", "销售费用", "其他业务支出").collect(Collectors.toSet());
private final SalaryMapper salaryMapper; private final SalaryMapper salaryMapper;
...@@ -31,22 +31,23 @@ public class TsSalarySaveServiceImpl implements TsSalarySaveService { ...@@ -31,22 +31,23 @@ public class TsSalarySaveServiceImpl implements TsSalarySaveService {
@Override @Override
@SneakyThrows @SneakyThrows
public AjaxResult save(MultipartFile multipartFile) { public AjaxResult save(MultipartFile multipartFile, String salaryDate) {
InputStream inputStream = multipartFile.getInputStream(); InputStream inputStream = multipartFile.getInputStream();
TsExcelListener<SalaryExcelModel> tsExcelListener = new TsExcelListener<>(); TsExcelListener<SalaryExcelModel> tsExcelListener = new TsExcelListener<>();
EasyExcel.read(inputStream, SalaryExcelModel.class, tsExcelListener).sheet(0).headRowNumber(3).doRead(); EasyExcel.read(inputStream, SalaryExcelModel.class, tsExcelListener).sheet(0).headRowNumber(3).doRead();
List<SalaryExcelModel> salaryExcelModelList = tsExcelListener.getSalaryExcelModelList().stream().map(project -> { List<SalaryExcelModel> salaryExcelModelList = tsExcelListener.getSalaryExcelModelList().stream().map(project -> {
if (StringUtils.isNotBlank(project.getProjectName())) { if (StringUtils.isNotBlank(project.getOrg())) {
project.setProjectName(project.getProjectName().replaceAll("[0-9\\p{Punct}]", StringUtils.EMPTY)); project.setOrg(project.getOrg().replaceAll("[.、0-9()()]", StringUtils.EMPTY));
} }
project.setBelongToCoal("010101"); project.setBelongToCoal("010101");
project.setSalaryDate(salaryDate);
// project.setCreator(SecurityUtils.getLoginUser().getUsername()); // project.setCreator(SecurityUtils.getLoginUser().getUsername());
// project.setModify(SecurityUtils.getLoginUser().getUsername()); // project.setModify(SecurityUtils.getLoginUser().getUsername());
return project; return project;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
List<SalaryExcelModel> list=salaryExcelModelList.stream().filter(v-> !COST_CHANNEL_SET.contains(v.getProjectName())).filter(v->StringUtils.isNotBlank(v.getProjectName())).collect(Collectors.toList()); List<SalaryExcelModel> list=salaryExcelModelList.stream().filter(v-> !COST_CHANNEL_SET.contains(v.getOrg())).filter(v->StringUtils.isNotBlank(v.getOrg())).collect(Collectors.toList());
salaryMapper.save(list); salaryMapper.save(list);
return AjaxResult.success("保存成功!", salaryExcelModelList); return AjaxResult.success("保存成功!");
} }
} }
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
birth_insurance, source_expenses, unemployment_insurance, injury_insurance, birth_insurance, source_expenses, unemployment_insurance, injury_insurance,
company_house_fund, house_fund, company_house_fund, house_fund,
labor_union_dues, edu_fees, one_child, long_account_insurance, lunch, honor_money, labor_union_dues, edu_fees, one_child, long_account_insurance, lunch, honor_money,
warm_subsidy, heat_prevent_subsidy, belong_to_coal) warm_subsidy, heat_prevent_subsidy, belong_to_coal,salary_date)
VALUES VALUES
<foreach collection="salaryExcelModelList" item="item" index="index" separator=","> <foreach collection="salaryExcelModelList" item="item" index="index" separator=",">
(#{item.projectName},#{item.personCount},#{item.medicalSubsidy}, (#{item.org},#{item.personCount},#{item.medicalSubsidy},
#{item.sumSalary},#{item.oldInsurance},#{item.annuity},#{item.supplyMedicalInsurance}, #{item.sumSalary},#{item.oldInsurance},#{item.annuity},#{item.supplyMedicalInsurance},
#{item.medicalInsurance},#{item.supplyMedicalInsurance},#{item.birthInsurance},#{item.sourceExpenses}, #{item.medicalInsurance},#{item.supplyMedicalInsurance},#{item.birthInsurance},#{item.sourceExpenses},
#{item.unemploymentInsurance},#{item.injuryInsurance},#{item.companyHouseFund},#{item.houseFund}, #{item.unemploymentInsurance},#{item.injuryInsurance},#{item.companyHouseFund},#{item.houseFund},
#{item.laborUnionDues},#{item.edufFees},#{item.oneChild},#{item.longAccountInsurance},#{item.lunch}, #{item.laborUnionDues},#{item.edufFees},#{item.oneChild},#{item.longAccountInsurance},#{item.lunch},
#{item.honorMoney},#{item.warmSubsidy},#{item.heatPreventSubsidy},#{item.belongToCoal}) #{item.honorMoney},#{item.warmSubsidy},#{item.heatPreventSubsidy},#{item.belongToCoal},#{item.salaryDate})
</foreach> </foreach>
</insert> </insert>
......
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