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

--代码提交

parent 7e9a63fe
...@@ -18,7 +18,7 @@ public class ConfigSaveController { ...@@ -18,7 +18,7 @@ public class ConfigSaveController {
@PostMapping("/test/save") @PostMapping("/test/save")
public void save() { public void save() {
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
map.put("org","项目,部门名称"); /*map.put("org","项目,部门名称");
map.put("personCount","人数"); map.put("personCount","人数");
map.put("salary","应付工资"); map.put("salary","应付工资");
map.put("medicalSubsidy","应付工资2(医疗补贴)"); map.put("medicalSubsidy","应付工资2(医疗补贴)");
...@@ -40,7 +40,27 @@ public class ConfigSaveController { ...@@ -40,7 +40,27 @@ public class ConfigSaveController {
map.put("longAccountInsurance","长户险"); map.put("longAccountInsurance","长户险");
map.put("honorMoney","荣誉金"); map.put("honorMoney","荣誉金");
map.put("warmSubsidy","取暖补贴"); map.put("warmSubsidy","取暖补贴");
map.put("heatPreventSubsidy","防暑降温,降温防暑费"); map.put("heatPreventSubsidy","防暑降温,降温防暑费");*/
map.put("classificationName","用电单位");
map.put("powerTotal","电量(kwh)");
map.put("powerTip","");
map.put("powerPeak","");
map.put("powerFlat","");
map.put("powerValley","");
map.put("electricityTotal","含税电费总额(元)");
map.put("electricityTip","");
map.put("electricityPeak","");
map.put("electricityFlat","");
map.put("electricityValley","");
map.put("electricityPriceTip","");
map.put("electricityPricePeak","");
map.put("electricityPriceFlat","");
map.put("electricityPriceValley","");
map.put("levelOneClassification","");
map.put("levelTwoClassification","");
map.put("levelThreeClassification","");
map.put("basicElectricityTariff","");
map.forEach((k,v)-> salaryMapper.insertMap(k,v)); map.forEach((k,v)-> salaryMapper.insertMap(k,v));
} }
......
...@@ -32,4 +32,10 @@ public class PowerDisplayController { ...@@ -32,4 +32,10 @@ public class PowerDisplayController {
powerDisplayService.peek(powerDisplayDtoList); powerDisplayService.peek(powerDisplayDtoList);
return new AjaxResult(200, "成功"); return new AjaxResult(200, "成功");
} }
@PostMapping("/save")
public AjaxResult save(@RequestBody List<NewRuleRequestModel> powerDisplayDtoList) {
return powerDisplayService.save(powerDisplayDtoList);
}
} }
package com.ruoyi.system.mapper; package com.ruoyi.system.mapper;
import com.ruoyi.system.model.power.PowerSourceModel;
import com.ruoyi.system.model.power.dao.PowerClassificationQueryDao; import com.ruoyi.system.model.power.dao.PowerClassificationQueryDao;
import com.ruoyi.system.model.power.dao.PowerControlDao; import com.ruoyi.system.model.power.dao.PowerControlDao;
import com.ruoyi.system.model.power.dto.PowerDisplayDto; import com.ruoyi.system.model.power.dto.PowerDisplayDto;
import com.ruoyi.system.model.salary.ConfigModel;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -24,4 +26,8 @@ public interface PowerDisplayMapper { ...@@ -24,4 +26,8 @@ public interface PowerDisplayMapper {
List<PowerDisplayDto> selOfMid(@Param("id") String mindId, @Param("date") String date); List<PowerDisplayDto> selOfMid(@Param("id") String mindId, @Param("date") String date);
void update(List<PowerDisplayDto> collect); void update(List<PowerDisplayDto> collect);
List<ConfigModel> seletPowerConfig();
List<PowerSourceModel> selectSource(@Param("number") String number);
} }
package com.ruoyi.system.model.power;
import java.io.Serializable;
public class PowerSourceModel implements Serializable {
private String levelOneClassification;
private String classificationName;
private String mindId;
public String getLevelOneClassification() {
return levelOneClassification;
}
public void setLevelOneClassification(String levelOneClassification) {
this.levelOneClassification = levelOneClassification;
}
public String getClassificationName() {
return classificationName;
}
public void setClassificationName(String classificationName) {
this.classificationName = classificationName;
}
public String getMindId() {
return mindId;
}
public void setMindId(String mindId) {
this.mindId = mindId;
}
}
package com.ruoyi.system.model.power.dto; package com.ruoyi.system.model.power.dto;
import lombok.Data;
/** /**
* 2024/7/30 * 2024/7/30
* 电力展示保存 * 电力展示保存
*/ */
@Data
public class PowerDisplayDto { public class PowerDisplayDto {
// 年月 // 年月
private String dateColumn; private String dateColumn;
...@@ -50,4 +49,172 @@ public class PowerDisplayDto { ...@@ -50,4 +49,172 @@ public class PowerDisplayDto {
private String levelThreeClassification; private String levelThreeClassification;
// 基本电费 // 基本电费
private String basicElectricityTariff; private String basicElectricityTariff;
public String getDateColumn() {
return dateColumn;
}
public void setDateColumn(String dateColumn) {
this.dateColumn = dateColumn;
}
public String getMindId() {
return mindId;
}
public void setMindId(String mindId) {
this.mindId = mindId;
}
public String getClassificationName() {
return classificationName;
}
public void setClassificationName(String classificationName) {
this.classificationName = classificationName;
}
public String getPowerTotal() {
return powerTotal;
}
public void setPowerTotal(String powerTotal) {
this.powerTotal = powerTotal;
}
public String getPowerTip() {
return powerTip;
}
public void setPowerTip(String powerTip) {
this.powerTip = powerTip;
}
public String getPowerPeak() {
return powerPeak;
}
public void setPowerPeak(String powerPeak) {
this.powerPeak = powerPeak;
}
public String getPowerFlat() {
return powerFlat;
}
public void setPowerFlat(String powerFlat) {
this.powerFlat = powerFlat;
}
public String getPowerValley() {
return powerValley;
}
public void setPowerValley(String powerValley) {
this.powerValley = powerValley;
}
public String getElectricityTotal() {
return electricityTotal;
}
public void setElectricityTotal(String electricityTotal) {
this.electricityTotal = electricityTotal;
}
public String getElectricityTip() {
return electricityTip;
}
public void setElectricityTip(String electricityTip) {
this.electricityTip = electricityTip;
}
public String getElectricityPeak() {
return electricityPeak;
}
public void setElectricityPeak(String electricityPeak) {
this.electricityPeak = electricityPeak;
}
public String getElectricityFlat() {
return electricityFlat;
}
public void setElectricityFlat(String electricityFlat) {
this.electricityFlat = electricityFlat;
}
public String getElectricityValley() {
return electricityValley;
}
public void setElectricityValley(String electricityValley) {
this.electricityValley = electricityValley;
}
public String getElectricityPriceTip() {
return electricityPriceTip;
}
public void setElectricityPriceTip(String electricityPriceTip) {
this.electricityPriceTip = electricityPriceTip;
}
public String getElectricityPricePeak() {
return electricityPricePeak;
}
public void setElectricityPricePeak(String electricityPricePeak) {
this.electricityPricePeak = electricityPricePeak;
}
public String getElectricityPriceFlat() {
return electricityPriceFlat;
}
public void setElectricityPriceFlat(String electricityPriceFlat) {
this.electricityPriceFlat = electricityPriceFlat;
}
public String getElectricityPriceValley() {
return electricityPriceValley;
}
public void setElectricityPriceValley(String electricityPriceValley) {
this.electricityPriceValley = electricityPriceValley;
}
public String getLevelOneClassification() {
return levelOneClassification;
}
public void setLevelOneClassification(String levelOneClassification) {
this.levelOneClassification = levelOneClassification;
}
public String getLevelTwoClassification() {
return levelTwoClassification;
}
public void setLevelTwoClassification(String levelTwoClassification) {
this.levelTwoClassification = levelTwoClassification;
}
public String getLevelThreeClassification() {
return levelThreeClassification;
}
public void setLevelThreeClassification(String levelThreeClassification) {
this.levelThreeClassification = levelThreeClassification;
}
public String getBasicElectricityTariff() {
return basicElectricityTariff;
}
public void setBasicElectricityTariff(String basicElectricityTariff) {
this.basicElectricityTariff = basicElectricityTariff;
}
} }
package com.ruoyi.system.service; package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.model.newrule.NewRuleRequestModel; import com.ruoyi.system.model.newrule.NewRuleRequestModel;
import java.util.List; import java.util.List;
...@@ -9,4 +10,6 @@ import java.util.List; ...@@ -9,4 +10,6 @@ import java.util.List;
*/ */
public interface PowerDisplayService { public interface PowerDisplayService {
void peek(List<NewRuleRequestModel> powerDisplayDtoList); void peek(List<NewRuleRequestModel> powerDisplayDtoList);
AjaxResult save(List<NewRuleRequestModel> powerDisplayDtoList);
} }
...@@ -8,6 +8,7 @@ import com.ruoyi.system.model.power.PowerImportSourceModel; ...@@ -8,6 +8,7 @@ import com.ruoyi.system.model.power.PowerImportSourceModel;
import com.ruoyi.system.model.salary.SalaryExpenseSourceModel; import com.ruoyi.system.model.salary.SalaryExpenseSourceModel;
import com.ruoyi.system.service.ImportExpenseSourceService; import com.ruoyi.system.service.ImportExpenseSourceService;
import lombok.SneakyThrows; 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;
...@@ -34,7 +35,11 @@ public class ImportExpenseSourceServiceImpl implements ImportExpenseSourceServic ...@@ -34,7 +35,11 @@ public class ImportExpenseSourceServiceImpl implements ImportExpenseSourceServic
@Override @Override
@SneakyThrows @SneakyThrows
public AjaxResult save(MultipartFile multipartFile) { public AjaxResult save(MultipartFile multipartFile) {
List<PowerImportSourceModel> powerImportSourceModelList = EasyExcelFactory.read(multipartFile.getInputStream(), PowerImportSourceModel.class, new ExcelListener<>()).sheet("Sheet1").headRowNumber(1).doReadSync(); List<PowerImportSourceModel> powerImportSourceModelList = EasyExcelFactory.read(multipartFile.getInputStream(), PowerImportSourceModel.class, new ExcelListener<>()).sheet("Sheet2").headRowNumber(1).doReadSync();
powerImportSourceModelList.forEach(v->{
v.setClassificationName(v.getClassificationName().replaceAll(StringUtils.SPACE,StringUtils.EMPTY));
v.setLevelOneClassification(v.getLevelOneClassification().replaceAll(StringUtils.SPACE,StringUtils.EMPTY));
});
importExpenseSourceMapper.saveSource(powerImportSourceModelList); importExpenseSourceMapper.saveSource(powerImportSourceModelList);
return AjaxResult.success(); return AjaxResult.success();
} }
......
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.mapper.PowerDisplayMapper; import com.ruoyi.system.mapper.PowerDisplayMapper;
import com.ruoyi.system.model.newrule.NewRuleRequestModel; import com.ruoyi.system.model.newrule.NewRuleRequestModel;
import com.ruoyi.system.model.power.PowerSourceModel;
import com.ruoyi.system.model.power.dao.PowerClassificationQueryDao; import com.ruoyi.system.model.power.dao.PowerClassificationQueryDao;
import com.ruoyi.system.model.power.dao.PowerControlDao; import com.ruoyi.system.model.power.dao.PowerControlDao;
import com.ruoyi.system.model.power.dto.PowerDisplayDto; import com.ruoyi.system.model.power.dto.PowerDisplayDto;
import com.ruoyi.system.model.salary.ConfigModel;
import com.ruoyi.system.service.PowerDisplayService; import com.ruoyi.system.service.PowerDisplayService;
import com.ruoyi.system.service.impl.saveOnTheLargeScreenPower.*; import com.ruoyi.system.service.impl.saveOnTheLargeScreenPower.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ReflectionUtils;
import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis;
import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.*;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -205,6 +211,7 @@ public class PowerDisplayServiceImpl implements PowerDisplayService { ...@@ -205,6 +211,7 @@ public class PowerDisplayServiceImpl implements PowerDisplayService {
} }
} }
/** /**
* 011701电价的处理方法 * 011701电价的处理方法
* *
...@@ -255,4 +262,133 @@ public class PowerDisplayServiceImpl implements PowerDisplayService { ...@@ -255,4 +262,133 @@ public class PowerDisplayServiceImpl implements PowerDisplayService {
} }
} }
} }
@Override
public AjaxResult save(List<NewRuleRequestModel> powerDisplayDtoList) {
if (!CollectionUtils.isEmpty(powerDisplayDtoList)) {
String mineid = powerDisplayDtoList.get(0).getMineid();
if (StringUtils.equals("011702", mineid)) {
saveLJTPowerData(powerDisplayDtoList);
}
if (StringUtils.equals("011701", mineid)) {
saveFGZPowerData(powerDisplayDtoList);
}
} else {
return AjaxResult.error();
}
return AjaxResult.success();
}
/**
* 范各庄
*
* @param powerDisplayDtoList
*/
private void saveFGZPowerData(List<NewRuleRequestModel> powerDisplayDtoList) {
ReplaceBlank(powerDisplayDtoList);
List<PowerDisplayDto> displayDtoList = getPowerDisplayDtoList(powerDisplayDtoList);
}
/**
* 吕家坨
*
* @param powerDisplayDtoList
*/
private void saveLJTPowerData(List<NewRuleRequestModel> powerDisplayDtoList) {
ReplaceBlank(powerDisplayDtoList);
List<PowerDisplayDto> displayDtoList = getPowerDisplayDtoList(powerDisplayDtoList);
disposeParamter(displayDtoList);
Map<String, List<PowerDisplayDto>> map = displayDtoList.stream().collect(Collectors.groupingBy(PowerDisplayDto::getClassificationName));
List<PowerDisplayDto> finalList = new ArrayList<>();
map.forEach((k, v) -> {
PowerDisplayDto pd = megreData(v);
finalList.add(pd);
});
List<PowerDisplayDto> collect = finalList.stream().filter(v -> !StringUtils.contains(v.getClassificationName(), "合计")).collect(Collectors.toList());
List<PowerSourceModel> powerSourceModelList = powerDisplayMapper.selectSource("011702");
collect = collect.stream().filter(v -> powerSourceModelList.stream().noneMatch(powerSourceModel -> StringUtils.equals(v.getClassificationName(), powerSourceModel.getLevelOneClassification()))).collect(Collectors.toList());
collect.forEach(v->{
for (PowerSourceModel powerSourceModel : powerSourceModelList) {
if (StringUtils.equals(v.getClassificationName(),powerSourceModel.getClassificationName())){
v.setLevelOneClassification(powerSourceModel.getLevelOneClassification());
}
}
});
powerDisplayMapper.insert(collect);
}
private PowerDisplayDto megreData(List<PowerDisplayDto> powerDisplayDtoList) {
return powerDisplayDtoList.stream().collect(Collectors.collectingAndThen(Collectors.toMap(data -> data.getMindId() + data.getClassificationName() + data.getDateColumn(), data -> data, (existingData, newData) -> {
existingData.setPowerTotal(StringUtils.isEmpty(existingData.getPowerTotal()) ? newData.getPowerTotal() : existingData.getPowerTotal());
existingData.setPowerTip(StringUtils.isEmpty(existingData.getPowerTip()) ? newData.getPowerTip() : existingData.getPowerTip());
existingData.setPowerPeak(StringUtils.isEmpty(existingData.getPowerPeak()) ? newData.getPowerPeak() : existingData.getPowerPeak());
existingData.setPowerFlat(StringUtils.isEmpty(existingData.getPowerFlat()) ? newData.getPowerFlat() : existingData.getPowerFlat());
existingData.setPowerValley(StringUtils.isEmpty(existingData.getPowerValley()) ? newData.getPowerValley() : existingData.getPowerValley());
existingData.setElectricityTotal(StringUtils.isEmpty(existingData.getElectricityTotal()) ? newData.getElectricityTotal() : existingData.getElectricityTotal());
existingData.setElectricityTip(StringUtils.isEmpty(existingData.getElectricityTip()) ? newData.getElectricityTip() : existingData.getElectricityTip());
existingData.setElectricityPeak(StringUtils.isEmpty(existingData.getElectricityPeak()) ? newData.getElectricityPeak() : existingData.getElectricityPeak());
existingData.setElectricityFlat(StringUtils.isEmpty(existingData.getElectricityFlat()) ? newData.getElectricityFlat() : existingData.getElectricityFlat());
existingData.setElectricityValley(StringUtils.isEmpty(existingData.getElectricityValley()) ? newData.getElectricityValley() : existingData.getElectricityValley());
existingData.setElectricityPriceTip(StringUtils.isEmpty(existingData.getElectricityPriceTip()) ? newData.getElectricityPriceTip() : existingData.getElectricityPriceTip());
existingData.setElectricityPricePeak(StringUtils.isEmpty(existingData.getElectricityPricePeak()) ? newData.getElectricityPricePeak() : existingData.getElectricityPricePeak());
existingData.setElectricityPriceFlat(StringUtils.isEmpty(existingData.getElectricityPriceFlat()) ? newData.getElectricityPriceFlat() : existingData.getElectricityPriceFlat());
existingData.setElectricityPriceValley(StringUtils.isEmpty(existingData.getElectricityPriceValley()) ? newData.getElectricityPriceValley() : existingData.getElectricityPriceValley());
existingData.setLevelOneClassification(StringUtils.isEmpty(existingData.getLevelOneClassification()) ? newData.getLevelOneClassification() : existingData.getLevelOneClassification());
existingData.setLevelTwoClassification(StringUtils.isEmpty(existingData.getLevelTwoClassification()) ? newData.getLevelTwoClassification() : existingData.getLevelTwoClassification());
existingData.setLevelThreeClassification(StringUtils.isEmpty(existingData.getLevelThreeClassification()) ? newData.getLevelThreeClassification() : existingData.getLevelThreeClassification());
existingData.setBasicElectricityTariff(StringUtils.isEmpty(existingData.getBasicElectricityTariff()) ? newData.getBasicElectricityTariff() : existingData.getBasicElectricityTariff());
return existingData;
}), map -> map.values().iterator().next()));
}
private List<PowerDisplayDto> getPowerDisplayDtoList(List<NewRuleRequestModel> powerDisplayDtoList) {
List<PowerDisplayDto> displayDtoList = new ArrayList<>();
List<ConfigModel> configModelList = powerDisplayMapper.seletPowerConfig();
Map<String, List<NewRuleRequestModel>> map = powerDisplayDtoList.stream().collect(Collectors.groupingBy(NewRuleRequestModel::getRow));
map.forEach((k, v) -> {
PowerDisplayDto powerDisplayDto = new PowerDisplayDto();
for (NewRuleRequestModel newRuleRequestModel : v) {
for (ConfigModel configModel : configModelList) {
if (StringUtils.contains(newRuleRequestModel.getColoumn(), configModel.getColName())) {
Field field;
try {
field = PowerDisplayDto.class.getDeclaredField(configModel.getKeyName());
ReflectionUtils.makeAccessible(field);
ReflectionUtils.setField(field, powerDisplayDto, newRuleRequestModel.getValue());
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
}
}
}
powerDisplayDto.setClassificationName(k);
powerDisplayDto.setDateColumn(newRuleRequestModel.getWageMonth());
powerDisplayDto.setMindId(newRuleRequestModel.getMineid());
}
displayDtoList.add(powerDisplayDto);
});
return displayDtoList;
}
private void ReplaceBlank(List<NewRuleRequestModel> powerDisplayDtoList) {
powerDisplayDtoList.forEach(v -> {
v.setRow(v.getRow().replaceAll(StringUtils.SPACE, StringUtils.EMPTY));
v.setValue(v.getValue().replaceAll(StringUtils.SPACE, StringUtils.EMPTY));
v.setColoumn(v.getColoumn().replaceAll(StringUtils.SPACE, StringUtils.EMPTY));
});
}
private void disposeParamter(List<PowerDisplayDto> displayDtoList) {
for (PowerDisplayDto powerDisplayDto : displayDtoList) {
if (org.apache.commons.lang3.StringUtils.contains(powerDisplayDto.getClassificationName(), "其中")) {
powerDisplayDto.setClassificationName(powerDisplayDto.getClassificationName().replaceAll("其中:", StringUtils.EMPTY));
}
powerDisplayDto.setClassificationName(powerDisplayDto.getClassificationName().replaceAll("[^\\u4e00-\\u9fa5]", StringUtils.EMPTY));
}
}
} }
...@@ -100,4 +100,15 @@ ...@@ -100,4 +100,15 @@
where mind_id = #{id} where mind_id = #{id}
and date_column = #{date} and date_column = #{date}
</select> </select>
<select id="seletPowerConfig" resultType="com.ruoyi.system.model.salary.ConfigModel">
select key_name as keyName, col_name as colName
from power_col_config
where col_name !=''
</select>
<select id="selectSource" resultType="com.ruoyi.system.model.power.PowerSourceModel">
select level_one_classification as levelOneClassification,
classification_name as classificationName
from power_classification_query
where mind_id = #{number}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -200,7 +200,7 @@ ...@@ -200,7 +200,7 @@
and salary_date = #{salaryDate} and salary_date = #{salaryDate}
</update> </update>
<insert id="insertMap"> <insert id="insertMap">
INSERT INTO salary_col_config (key_name, col_name) INSERT INTO power_col_config (key_name, col_name)
values (#{k}, #{v}) values (#{k}, #{v})
</insert> </insert>
<select id="getConfig" resultType="com.ruoyi.system.model.salary.ConfigModel"> <select id="getConfig" resultType="com.ruoyi.system.model.salary.ConfigModel">
......
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