导入工具

This commit is contained in:
钱涛 2024-08-15 16:25:31 +08:00
parent c079b1d2e6
commit 980dc2f532
7 changed files with 86 additions and 57 deletions

View File

@ -69,6 +69,7 @@ public interface SalaryItemMapper {
void batchUpdateSortedIndex(@Param("collection")List<SalaryItemPO> salaryItemPOS);
SalaryItemPO getByName(String name);
SalaryItemPO getByCode(String code);
List<SalaryItemExcelConfig> getConfig(@Param("ids") Collection<Long> ids);

View File

@ -592,6 +592,13 @@
WHERE name = #{name} AND delete_type = 0
</select>
<select id="getByCode" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_salary_item t
WHERE code = #{code} AND delete_type = 0
</select>
<resultMap id="configResultMap" type="com.engine.salary.entity.salaryitem.config.SalaryItemExcelConfig">
<result column="name" property="name"/>

View File

@ -157,6 +157,7 @@ public interface SalaryItemService {
void parseConfig(SalaryItemAllConfig salaryItemConfig);
Long add(SalaryItemPO salaryItemPO);
SalaryItemPO getItem(SalaryItemPO salaryItemPO);
List<SalaryItemExcelConfig> getConfig(SalaryItemExportParam param);

View File

@ -29,6 +29,7 @@ import com.engine.salary.service.*;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.SalaryLoggerUtil;
import com.engine.salary.util.db.IdGenerator;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.excel.ExcelUtil;
import com.engine.salary.util.page.PageInfo;
@ -761,12 +762,7 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi
Optional.ofNullable(config .getSalaryItems())
.orElse(new ArrayList<>())
.forEach(itemPO -> {
if (idMap.containsKey(itemPO.getId())) {
itemPO.setCode(null);
itemPO.setName(null);
itemPO.setCreator(uid);
getSalaryItemMapper().updateIgnoreNull(itemPO);
} else if (nameMap.containsKey(itemPO.getName())) {
if (nameMap.containsKey(itemPO.getName())) {
SalaryItemPO salaryItemPO = nameMap.get(itemPO.getName());
itemPO.setId(salaryItemPO.getId());
//不许修改code
@ -781,6 +777,7 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi
itemPO.setCreator(uid);
getSalaryItemMapper().updateIgnoreNull(itemPO);
} else {
itemPO.setId(IdGenerator.generate());
getSalaryItemMapper().insertIgnoreNull(itemPO);
}
});

View File

@ -824,17 +824,22 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService
}
@Override
public SalaryItemPO getItem(SalaryItemPO salaryItemPO) {
SalaryItemPO po = getByName(salaryItemPO.getName());
if (po == null) {
po = getSalaryItemMapper().getByCode(salaryItemPO.getCode());
}
return po;
}
private Long add(SalaryItemPO itemPO, Map<Long, SalaryItemPO> idMap, Map<String, SalaryItemPO> nameMap, Map<String, SalaryItemPO> codeMap) {
long uid = user.getUID();
Long formulaId = getSalaryFormulaService(user).add(itemPO.getFormula());
itemPO.setFormulaId(formulaId);
if (idMap.containsKey(itemPO.getId())) {
itemPO.setCode(null);
itemPO.setName(null);
itemPO.setCreator(uid);
getSalaryItemMapper().updateIgnoreNull(itemPO);
} else if (nameMap.containsKey(itemPO.getName())) {
if (nameMap.containsKey(itemPO.getName())) {
SalaryItemPO salaryItemPO = nameMap.get(itemPO.getName());
itemPO.setId(salaryItemPO.getId());
//不许修改code
@ -849,6 +854,7 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService
itemPO.setCreator(uid);
getSalaryItemMapper().updateIgnoreNull(itemPO);
} else {
itemPO.setId(IdGenerator.generate());
getSalaryItemMapper().insertIgnoreNull(itemPO);
}

View File

@ -42,6 +42,7 @@ import com.engine.salary.util.page.SalaryPageUtil;
import com.engine.salary.util.valid.RuntimeTypeEnum;
import com.engine.salary.util.valid.ValidUtil;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
@ -62,6 +63,7 @@ import java.util.stream.Collectors;
* @author qiantao
* @version 1.0
**/
@Slf4j
public class SalarySobServiceImpl extends Service implements SalarySobService {
@ -592,18 +594,18 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
salarySobPO.setUpdateTime(new Date());
salarySobMapper.updateById(salarySobPO);
// 记录日志
String operateTypeName = Objects.equals(disableParam.getDisable(), NumberUtils.INTEGER_ONE) ?
SalaryI18nUtil.getI18nLabel(0, "禁用薪资账套") : SalaryI18nUtil.getI18nLabel(0, "启用薪资账套");
LoggerContext<SalarySobPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId("" + salarySobPO.getId());
loggerContext.setTargetName(salarySobPO.getName());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(operateTypeName);
loggerContext.setOperatedesc(operateTypeName + ": " + salarySobPO.getName());
loggerContext.setOldValues(oldSalarySobPO);
loggerContext.setNewValues(salarySobPO);
SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext);
String operateTypeName = Objects.equals(disableParam.getDisable(), NumberUtils.INTEGER_ONE) ?
SalaryI18nUtil.getI18nLabel(0, "禁用薪资账套") : SalaryI18nUtil.getI18nLabel(0, "启用薪资账套");
LoggerContext<SalarySobPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId("" + salarySobPO.getId());
loggerContext.setTargetName(salarySobPO.getName());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(operateTypeName);
loggerContext.setOperatedesc(operateTypeName + ": " + salarySobPO.getName());
loggerContext.setOldValues(oldSalarySobPO);
loggerContext.setNewValues(salarySobPO);
SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext);
}
@Override
@ -658,18 +660,18 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
getSalarySobBackItemService(user).deleteBySalarySobIds(ids);
// 删除薪资账套的校验规则
getSalarySobCheckRuleService(user).deleteBySalarySobIds(ids);
// 记录日志
salarySobPOS.forEach(salarySobPO -> {
LoggerContext<SalarySobPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId("" + salarySobPO.getId());
loggerContext.setTargetName(salarySobPO.getName());
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除薪资账套"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除薪资账套"));
loggerContext.setOldValues(salarySobPO);
SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext);
});
// 记录日志
salarySobPOS.forEach(salarySobPO -> {
LoggerContext<SalarySobPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId("" + salarySobPO.getId());
loggerContext.setTargetName(salarySobPO.getName());
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除薪资账套"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除薪资账套"));
loggerContext.setOldValues(salarySobPO);
SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext);
});
}
@Override
@ -764,15 +766,15 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
if (CollectionUtils.isNotEmpty(result.getSalarySobCheckRules())) {
getSalarySobCheckRuleService(user).batchSave(result.getSalarySobCheckRules());
}
// 记录日志
LoggerContext<SalarySobPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId("" + result.getSalarySob().getId());
loggerContext.setTargetName(result.getSalarySob().getName());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(98570, "复制薪资账套"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(98570, "复制薪资账套") + ": " + salarySobPO.getName());
SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext);
// 记录日志
LoggerContext<SalarySobPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId("" + result.getSalarySob().getId());
loggerContext.setTargetName(result.getSalarySob().getName());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(98570, "复制薪资账套"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(98570, "复制薪资账套") + ": " + salarySobPO.getName());
SalaryElogConfig.salarySobLoggerTemplate.write(loggerContext);
}
@Override
@ -885,9 +887,13 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
SalaryItemPO salaryItemPO = salaryItemNameMap.get(salaryItem.getName());
if (salaryItemPO != null) {
sobItem.setSalaryItemId(salaryItemPO.getId());
}else{
Long itemId = getSalaryItemService(user).add(salaryItem);
sobItem.setSalaryItemId(itemId);
} else {
SalaryItemPO itemPO = getSalaryItemService(user).getItem(salaryItem);
if (itemPO != null) {
sobItem.setSalaryItemId(itemPO.getId());
}else {
log.error("item not found:{}",salaryItem);
}
}
}
@ -918,10 +924,14 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
if (salaryItem != null) {
SalaryItemPO salaryItemPO = salaryItemNameMap.get(salaryItem.getName());
if (salaryItemPO != null) {
sobItem.setSalaryItem(salaryItemPO);
}else{
Long itemId = getSalaryItemService(user).add(salaryItem);
sobItem.setSalaryItemId(itemId);
sobItem.setSalaryItemId(salaryItemPO.getId());
} else {
SalaryItemPO itemPO = getSalaryItemService(user).getItem(salaryItem);
if (itemPO != null) {
sobItem.setSalaryItemId(itemPO.getId());
}else {
log.error("item not found:{}",salaryItem);
}
}
}
});
@ -946,10 +956,14 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
if (salaryItem != null) {
SalaryItemPO salaryItemPO = salaryItemNameMap.get(salaryItem.getName());
if (salaryItemPO != null) {
salarySobBackItem.setSalaryItem(salaryItemPO);
}else{
Long itemId = getSalaryItemService(user).add(salaryItem);
salarySobBackItem.setSalaryItemId(itemId);
salarySobBackItem.setSalaryItemId(salaryItemPO.getId());
} else {
SalaryItemPO itemPO = getSalaryItemService(user).getItem(salaryItem);
if (itemPO != null) {
salarySobBackItem.setSalaryItemId(itemPO.getId());
}else {
log.error("item not found:{}",salaryItem);
}
}
}
}

View File

@ -25,6 +25,7 @@ import com.engine.salary.util.page.SalaryPageUtil;
import com.engine.salary.util.valid.RuntimeTypeEnum;
import com.engine.salary.util.valid.ValidUtil;
import com.engine.salary.util.xml.XStreamUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.util.IOUtils;
import weaver.file.ImageFileManager;
@ -49,6 +50,7 @@ import java.util.Map;
* @author qiantao
* @version 1.0
**/
@Slf4j
public class SalarySystemConfigWrapper extends Service {
private SalarySysConfService getSalarySysConfService(User user) {
@ -267,7 +269,8 @@ public class SalarySystemConfigWrapper extends Service {
return response;
} catch (Exception e) {
response.setErrorData(Collections.singletonList(ImportExcelResponse.Error.builder().message("文件读取失败!").build()));
log.error("迁入失败",e);
response.setErrorData(Collections.singletonList(ImportExcelResponse.Error.builder().message("迁入失败!").build()));
return response;
} finally {
IOUtils.closeQuietly(fileInputStream);