Commit 47d02e44 authored by Fuzy's avatar Fuzy

修改实体类

parent fbe2cd5c
package com.ruoyi.system.listener;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
/**
* 2024/4/13
*/
public class ExcelListener<T> extends AnalysisEventListener<T> {
@Override
public void invoke(T t, AnalysisContext analysisContext) {
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
package com.ruoyi.system.test;
import java.util.concurrent.*;
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class AsyncQueueConsumer {
private static final int MAX_THREADS = 10;
private static final int QUEUE_CAPACITY = 100;
public static BlockingQueue<Person> queue = new LinkedBlockingQueue<>(QUEUE_CAPACITY);
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(MAX_THREADS);
// 生产者线程
new Thread(() -> {
for (int i = 0; i < 1000; i++) {
try {
Person person = new Person("Person" + i, i);
queue.put(person);
System.out.println("Produced: " + person);
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
// 消费者线程
for (int i = 0; i < MAX_THREADS; i++) {
executorService.submit(() -> {
try {
Thread.sleep(3000);
System.out.println(queue.poll(3, TimeUnit.SECONDS));
} catch (InterruptedException e) {
e.printStackTrace();
}
});
}
}
}
\ No newline at end of file
package com.ruoyi.system.test;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.stream.IntStream;
/**
* 2024/4/23
*/
@Component
public class Test {
public static Map<String, Map<String, Long>> map = new HashMap<>();
private static final long BIG_TIME = 1000L;
public static boolean put(String function, String user){
synchronized (Test.class) {
long state = System.currentTimeMillis();
if (map.containsKey(function)){
Map<String, Long> stringMap = map.get(function);
if (stringMap.containsKey(user)){
Long aLong = stringMap.get(user);
if (state - aLong > BIG_TIME){
stringMap.put(user, state);
}else {
stringMap.put(user, state);
return false;
}
}else {
stringMap.put(user, state);
}
}else {
Map<String, Long> stringMap = new HashMap<>();
stringMap.put(user, state);
map.put(function, stringMap);
}
return true;
}
}
@Scheduled(fixedRate = 30000)
public static void expireTime(){
synchronized (Test.class) {
long state = System.currentTimeMillis();
for(Map.Entry<String, Map<String, Long>> m : map.entrySet()){
Map<String, Long> value = m.getValue();
if (value == null && value.size() == 0) {
map.remove(m.getKey());
}
for(Map.Entry<String, Long> mapValue : value.entrySet()){
Long v = mapValue.getValue();
if (state - v > BIG_TIME){
value.remove(mapValue.getKey());
}
}
}
}
}
}
......@@ -16,6 +16,7 @@ import java.util.List;
/**
* 2024/4/26
* 工资原始表
*/
@RestController
@RequestMapping("/wages")
......@@ -28,6 +29,11 @@ public class WagesController {
this.wagesService = wagesService;
}
/**
* excel解析
* @param file
* @return
*/
@PostMapping("/excel")
public AjaxResult excelAnalysis(@RequestParam("file") MultipartFile file) {
String s = wagesService.readOriginalData(file);
......@@ -35,6 +41,10 @@ public class WagesController {
return new AjaxResult(200, s);
}
/**
* 工资大略表查询
* @return
*/
@PostMapping("/overview")
public List<WagesOverviewOriginalDataVO> salaries() {
logger.info("overview");
......@@ -42,6 +52,10 @@ public class WagesController {
return salaryList;
}
/**
* 工资详情表查询
* @return
*/
@RequestMapping("/details")
public List<WagesDetailsOriginalExcelDAO> test(){
List<WagesDetailsOriginalExcelDAO> list = wagesService.details();
......
package com.ruoyi.system.controller;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.model.wages.dto.WagesConversionDataDto;
import com.ruoyi.system.service.WagesConversionService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 2024/5/11
* 工资json数据
*/
@RestController
@RequestMapping("/conversion")
public class WagesConversionController {
private WagesConversionService wagesConversionService;
private WagesConversionController(WagesConversionService wagesConversionService) {
this.wagesConversionService = wagesConversionService;
}
@RequestMapping("/save")
public AjaxResult save(WagesConversionDataDto wagesConversionDataDto) {
wagesConversionService.save(wagesConversionDataDto);
return new AjaxResult(200, "成功");
}
}
package com.ruoyi.system.mapper;
import com.ruoyi.system.model.wages.dto.WagesConversionDataDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
* 2024/5/11
*/
@Repository
public interface WagesConversionMapper {
void save(@Param("dto") WagesConversionDataDto wagesConversionDataDto);
}
......@@ -21,4 +21,8 @@ public interface WagesMapper {
List<WagesOverviewOriginalDataVO> queryList();
List<WagesDetailsOriginalExcelDAO> detailsSelect();
void deleteDetailsOriginal(@Param("month") String month, @Param("year") String year);
void deleteWagesOverviewOriginal(@Param("month") String month, @Param("year") String year);
}
package com.ruoyi.system.model.wages.dto;
import com.alibaba.fastjson.JSON;
public class WagesConversionDataDto {
private JSON jsonData ;
private String yearMonth;
public JSON getJsonData() {
return jsonData;
}
public void setJsonData(JSON jsonData) {
this.jsonData = jsonData;
}
public String getYearMonth() {
return yearMonth;
}
public void setYearMonth(String yearMonth) {
this.yearMonth = yearMonth;
}
}
package com.ruoyi.system.service;
import com.ruoyi.system.model.wages.dto.WagesConversionDataDto;
/**
* 2024/5/11
*/
public interface WagesConversionService {
void save(WagesConversionDataDto wagesConversionDataDto);
}
package com.ruoyi.system.service.impl;
import com.ruoyi.system.mapper.WagesConversionMapper;
import com.ruoyi.system.model.wages.dto.WagesConversionDataDto;
import com.ruoyi.system.service.WagesConversionService;
import org.springframework.stereotype.Service;
/**
* 2024/5/11
*/
@Service
public class WagesConversionServiceImpl implements WagesConversionService {
private WagesConversionMapper wagesConversionMapper;
private WagesConversionServiceImpl(WagesConversionMapper wagesConversionMapper){
this.wagesConversionMapper = wagesConversionMapper;
}
@Override
public void save(WagesConversionDataDto wagesConversionDataDto) {
wagesConversionMapper.save(wagesConversionDataDto);
}
}
......@@ -60,6 +60,12 @@ public class WagesServiceImpl implements WagesService {
wagesSheet2.getOneChildFee(), wagesSheet2.getMedicalSubsidy(), wagesSheet2.getHealthCareFee(), wagesSheet2.getClassMealFee(), wagesSheet2.getSoapFee(), wagesSheet2.getNursingFee(), wagesSheet2.getHeatstrokePreventionSubsidy(), wagesSheet2.getHeatingSubsidy(), wagesSheet2.getManuscriptFee(), wagesSheet2.getDriverAllowance(), wagesSheet2.getGraduateSettlementFee(), wagesSheet2.getOneTimeDisabilitySubsidy(), wagesSheet2.getLectureAndExamFee(), wagesSheet2.getOtherSubsidies(), wagesSheet2.getTotalPayment(), wagesSheet2.getTotalSalaryDisbursement());
wagesDetList.add(wages);
}
if (wagesDetList.size() > 0){
wagesMapper.deleteDetailsOriginal(wagesDetList.get(0).getMonth(), wagesDetList.get(0).getYear());
}
if (wagesOveList.size() > 0) {
wagesMapper.deleteWagesOverviewOriginal(wagesOveList.get(0).getMonth(), wagesOveList.get(0).getYear());
}
wagesMapper.insertDetailsOriginal(wagesDetList);
wagesMapper.insertWagesOverviewOriginal(wagesOveList);
return "导入成功!";
......
<?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.WagesConversionMapper">
<insert id="save">
insert into wages_conversion_data (json_data, if_generate_voucher, year_month)
values (#{dto.jsonData}, 0, #{dto.yearMonth})
</insert>
</mapper>
\ No newline at end of file
......@@ -38,6 +38,18 @@
#{list.totalWagesPayable})
</foreach>
</insert>
<delete id="deleteDetailsOriginal">
delete
from wages_details_original_data
where month = #{month}
and year = #{year}
</delete>
<delete id="deleteWagesOverviewOriginal">
delete
from wages_overview_original_data
where month = #{month}
and year = #{year}
</delete>
<select id="queryList" resultType="com.ruoyi.system.model.wages.vo.WagesOverviewOriginalDataVO">
select year as year,
month as month,
......
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