Commit b328c658 authored by 位宇华's avatar 位宇华

东欢坨工资代码提交

parent 7b9ff186
......@@ -114,6 +114,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
.antMatchers("/*/api-docs").anonymous()
.antMatchers("/druid/**").anonymous()
.antMatchers("/dht/salary").anonymous()
// activiti modeler 放行
.antMatchers("/modeler/**").anonymous()
.antMatchers("/activiti/definition/upload").anonymous()
......
......@@ -2,8 +2,16 @@ package com.ruoyi.system.constant;
public class CoalConstant {
/**
* 唐山矿
*/
public final static String TS_MINE = "010101";
/**
* 林西矿
*/
public final static String LX_MINE = "011704";
/**
* 东欢坨矿
*/
public final static String DHT_MINE = "010102";
}
......@@ -2,6 +2,7 @@ package com.ruoyi.system.controller;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.model.salary.LxSalaryModel;
import com.ruoyi.system.service.DhtSalaryService;
import com.ruoyi.system.service.LxSalaryService;
import com.ruoyi.system.service.TsSalarySaveService;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -11,13 +12,17 @@ import org.springframework.web.multipart.MultipartFile;
@RestController
public class SalaryController {
private final LxSalaryService lxSalaryService;
private final DhtSalaryService dhtSalaryService;
private final TsSalarySaveService salarySaveService;
public SalaryController(TsSalarySaveService salarySaveService, LxSalaryService lxSalaryService) {
public SalaryController(TsSalarySaveService salarySaveService, LxSalaryService lxSalaryService, DhtSalaryService dhtSalaryService) {
this.salarySaveService = salarySaveService;
this.lxSalaryService = lxSalaryService;
this.dhtSalaryService = dhtSalaryService;
}
/**
......@@ -27,8 +32,8 @@ public class SalaryController {
* @return
*/
@PostMapping("/ts/salary")
public AjaxResult tsSave(@RequestParam("multipartFile") MultipartFile multipartFile,@RequestParam("salaryDate")String salaryDate) {
return salarySaveService.save(multipartFile,salaryDate);
public AjaxResult tsSave(@RequestParam("multipartFile") MultipartFile multipartFile, @RequestParam("salaryDate") String salaryDate) {
return salarySaveService.save(multipartFile, salaryDate);
}
/**
......@@ -38,7 +43,12 @@ public class SalaryController {
* @return
*/
@PostMapping("/lx/salary")
public AjaxResult lxSave(@RequestParam("multipartFile") MultipartFile multipartFile, @RequestParam("salaryDate")String salaryDate) {
return lxSalaryService.lxSave(multipartFile,salaryDate);
public AjaxResult lxSave(@RequestParam("multipartFile") MultipartFile multipartFile, @RequestParam("salaryDate") String salaryDate) {
return lxSalaryService.lxSave(multipartFile, salaryDate);
}
@PostMapping("/dht/salary")
public AjaxResult dhtSave(@RequestParam("multipartFile") MultipartFile multipartFile, @RequestParam("salaryDate") String salaryDate) {
return dhtSalaryService.dhtSave(multipartFile, salaryDate);
}
}
package com.ruoyi.system.listener;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.ruoyi.system.model.salary.DhtSalaryModel;
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 DhtExcelListener<T> extends AnalysisEventListener<T> {
private final static Logger logger = LoggerFactory.getLogger(DhtExcelListener.class);
private List<DhtSalaryModel> dhtSalaryModelList = new ArrayList<>();
private int endRow;
@Override
public void invoke(T t, AnalysisContext analysisContext) {
DhtSalaryModel dhtSalaryModel = (DhtSalaryModel) t;
if (StringUtils.equals("总计", dhtSalaryModel.getOrg())) {
endRow = analysisContext.getCurrentRowNum();
}
int count = analysisContext.getCurrentRowNum();
if (endRow == 0 || (endRow - 1 >= count)) {
dhtSalaryModelList.add(dhtSalaryModel);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
logger.info("解析完成!");
}
public List<DhtSalaryModel> getDhtSalaryModelList() {
return dhtSalaryModelList;
}
}
package com.ruoyi.system.mapper;
import com.ruoyi.system.model.salary.ActClassModel;
import com.ruoyi.system.model.salary.SalaryExcelModel;
import org.apache.ibatis.annotations.Param;
......@@ -18,4 +19,6 @@ public interface SalaryMapper {
List<SalaryExcelModel> queryInsuranceSheet(@Param("salaryDate") String salaryDate, @Param("code") String code);
void updateInsurance(@Param("v") SalaryExcelModel v);
List<ActClassModel> getBySourceDhtClass(@Param("sskId")Integer sskId);
}
package com.ruoyi.system.model.salary;
import java.io.Serializable;
public class ActClassModel implements Serializable {
private Integer id;
private String name;
private Integer pid;
private String type;
private Integer sskId;
private String status;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPid() {
return pid;
}
public void setPid(Integer pid) {
this.pid = pid;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Integer getSskId() {
return sskId;
}
public void setSskId(Integer sskId) {
this.sskId = sskId;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
package com.ruoyi.system.model.salary;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import java.io.Serializable;
@ExcelIgnoreUnannotated
public class DhtSalaryModel implements Serializable {
@ExcelProperty("单位名称")
private String org;
@ExcelProperty("人数")
private String personCount;
@ExcelProperty("实发工资")
private String salary;
@ExcelProperty("养老保险")
private String oldInsurance;
@ExcelProperty("医疗保险")
private String medicalInsurance;
@ExcelProperty("失业保险")
private String unemploymentInsurance;
@ExcelProperty("年金")
private String annuity;
@ExcelProperty("班中餐")
private String lunch;
@ExcelProperty("一孩贴")
private String oneChild;
@ExcelProperty("医疗贴")
private String medicalSubsidy;
@ExcelProperty("荣誉金")
private String honorMoney;
@ExcelProperty("取暖费")
private String warmSubsidy;
@ExcelProperty(value = "统计工资")
private String sumSalary;
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 getSalary() {
return salary;
}
public void setSalary(String salary) {
this.salary = salary;
}
public String getOldInsurance() {
return oldInsurance;
}
public void setOldInsurance(String oldInsurance) {
this.oldInsurance = oldInsurance;
}
public String getMedicalInsurance() {
return medicalInsurance;
}
public void setMedicalInsurance(String medicalInsurance) {
this.medicalInsurance = medicalInsurance;
}
public String getUnemploymentInsurance() {
return unemploymentInsurance;
}
public void setUnemploymentInsurance(String unemploymentInsurance) {
this.unemploymentInsurance = unemploymentInsurance;
}
public String getAnnuity() {
return annuity;
}
public void setAnnuity(String annuity) {
this.annuity = annuity;
}
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 getMedicalSubsidy() {
return medicalSubsidy;
}
public void setMedicalSubsidy(String medicalSubsidy) {
this.medicalSubsidy = medicalSubsidy;
}
public String getHonorMoney() {
return honorMoney;
}
public void setHonorMoney(String honorMoney) {
this.honorMoney = honorMoney;
}
public String getWarmSubsidy() {
return warmSubsidy;
}
public void setWarmSubsidy(String warmSubsidy) {
this.warmSubsidy = warmSubsidy;
}
public String getSumSalary() {
return sumSalary;
}
public void setSumSalary(String sumSalary) {
this.sumSalary = sumSalary;
}
}
package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.web.multipart.MultipartFile;
public interface DhtSalaryService {
AjaxResult dhtSave(MultipartFile multipartFile, String salaryDate);
}
package com.ruoyi.system.service.impl;
import com.alibaba.excel.EasyExcel;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.listener.DhtExcelListener;
import com.ruoyi.system.mapper.SalaryMapper;
import com.ruoyi.system.model.salary.DhtSalaryModel;
import com.ruoyi.system.model.salary.SalaryExcelModel;
import com.ruoyi.system.service.DhtSalaryService;
import com.ruoyi.system.support.DhtSupport;
import lombok.SneakyThrows;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.List;
@Service
public class DhtSalaryServiceImpl implements DhtSalaryService {
private final SalaryMapper salaryMapper;
public DhtSalaryServiceImpl(SalaryMapper salaryMapper) {
this.salaryMapper = salaryMapper;
}
@Override
@SneakyThrows
public AjaxResult dhtSave(MultipartFile multipartFile, String salaryDate) {
InputStream inputStream = multipartFile.getInputStream();
DhtExcelListener<DhtSalaryModel> dhtExcelListener = new DhtExcelListener<>();
EasyExcel.read(inputStream, DhtSalaryModel.class, dhtExcelListener).sheet(1).headRowNumber(1).doRead();
List<DhtSalaryModel> dhtSalaryModelList = dhtExcelListener.getDhtSalaryModelList();
List<SalaryExcelModel>salaryExcelModelList= DhtSupport.getSalaryExcelModelList(dhtSalaryModelList,salaryDate,salaryMapper);
salaryMapper.save(salaryExcelModelList);
return AjaxResult.success();
}
}
package com.ruoyi.system.support;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.constant.CoalConstant;
import com.ruoyi.system.mapper.SalaryMapper;
import com.ruoyi.system.model.salary.ActClassModel;
import com.ruoyi.system.model.salary.DhtSalaryModel;
import com.ruoyi.system.model.salary.SalaryExcelModel;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
public class DhtSupport {
public static List<SalaryExcelModel> getSalaryExcelModelList(List<DhtSalaryModel> dhtSalaryModelList, String salaryDate, SalaryMapper salaryMapper) {
List<SalaryExcelModel> salaryExcelModelList = new ArrayList<>();
for (DhtSalaryModel dhtSalaryModel : dhtSalaryModelList) {
SalaryExcelModel salaryExcelModel = new SalaryExcelModel();
salaryExcelModel.setSumSalary(dhtSalaryModel.getSumSalary());
salaryExcelModel.setOrg(dhtSalaryModel.getOrg());
salaryExcelModel.setOldInsurance(dhtSalaryModel.getOldInsurance());
salaryExcelModel.setPersonCount(dhtSalaryModel.getPersonCount());
salaryExcelModel.setLunch(dhtSalaryModel.getLunch());
salaryExcelModel.setOneChild(dhtSalaryModel.getOneChild());
salaryExcelModel.setSalaryDate(salaryDate);
salaryExcelModel.setBelongToCoal(CoalConstant.DHT_MINE);
salaryExcelModel.setMedicalInsurance(dhtSalaryModel.getMedicalInsurance());
salaryExcelModel.setMedicalSubsidy(dhtSalaryModel.getMedicalSubsidy());
salaryExcelModel.setHonorMoney(dhtSalaryModel.getHonorMoney());
salaryExcelModel.setWarmSubsidy(dhtSalaryModel.getWarmSubsidy());
salaryExcelModel.setSalary(dhtSalaryModel.getSalary());
salaryExcelModel.setSourceExpenses(getSourceExpensesInfo(salaryMapper, dhtSalaryModel));
salaryExcelModel.setAnnuity(dhtSalaryModel.getAnnuity());
salaryExcelModelList.add(salaryExcelModel);
}
return salaryExcelModelList;
}
private static String getSourceExpensesInfo(SalaryMapper salaryMapper, DhtSalaryModel dhtSalaryModel) {
String org = dhtSalaryModel.getOrg();
List<ActClassModel> actClassModelList = salaryMapper.getBySourceDhtClass(Integer.parseInt(CoalConstant.DHT_MINE));
List<ActClassModel> sourceList = actClassModelList.stream().filter(v -> v.getPid() == null).collect(Collectors.toList());
List<ActClassModel> orgList = actClassModelList.stream().filter(v -> v.getPid() != null).collect(Collectors.toList());
List<ActClassModel> collect = orgList.stream().filter(v -> StringUtils.equals(v.getName(), org)).collect(Collectors.toList());
String name = "";
if (!CollectionUtils.isEmpty(collect)) {
Integer pid = collect.get(0).getPid();
List<ActClassModel> finalCollect = sourceList.stream().filter(v -> Objects.equals(v.getId(), pid)).collect(Collectors.toList());
name = finalCollect.get(0).getName();
}
if(StringUtils.contains(org,"综合服务中心")){
List<ActClassModel> compositeList = orgList.stream().filter(v -> StringUtils.contains(v.getName(),"综合服务中心")).collect(Collectors.toList());
Integer pid = compositeList.get(0).getPid();
List<ActClassModel> finalCollect = sourceList.stream().filter(v -> Objects.equals(v.getId(), pid)).collect(Collectors.toList());
name = finalCollect.get(0).getName();
}
return name;
}
}
......@@ -63,6 +63,7 @@
where salary_date = #{salaryDate}
and belong_to_coal = #{code}
</select>
<update id="updateInsurance">
update salary
set supply_medical_insurance =#{v.supplyMedicalInsurance},
......@@ -81,4 +82,10 @@
and salary_date = #{v.salaryDate}
and belong_to_coal = #{v.belongToCoal}
</update>
<select id="getBySourceDhtClass" resultType="com.ruoyi.system.model.salary.ActClassModel">
select id, name, pid, type, ssk_id as sskId, status
from act_classification
where ssk_id = #{sskId}
</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