1、批量锁定、批量解锁选择人员的所在行的工资项目,需根据人员的选择来设置。
2、导入薪资项目时,优化下当前导入表头能否自动为上次选择的表头信息
This commit is contained in:
parent
2ba4bb72db
commit
861cda00fa
|
|
@ -18,6 +18,7 @@ import java.util.Date;
|
|||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Data
|
||||
//hrsa_acct_result_template
|
||||
public class SalaryAcctResultTemplatePO {
|
||||
/**
|
||||
* 主键id
|
||||
|
|
@ -29,6 +30,11 @@ public class SalaryAcctResultTemplatePO {
|
|||
*/
|
||||
private String templateName;
|
||||
|
||||
/**
|
||||
* 模板类型, 0:导出模板 1:公共导出模板 2:导入模板
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 薪资账套id
|
||||
*/
|
||||
|
|
@ -51,4 +57,5 @@ public class SalaryAcctResultTemplatePO {
|
|||
|
||||
//主键id集合
|
||||
private Collection<Long> ids;
|
||||
private Collection<Integer> types;
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@
|
|||
<result column="template_name" property="templateName" />
|
||||
<result column="tenant_key" property="tenantKey" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="type" property="type" />
|
||||
</resultMap>
|
||||
|
||||
<!-- 表字段 -->
|
||||
|
|
@ -24,6 +25,7 @@
|
|||
, t.template_name
|
||||
, t.tenant_key
|
||||
, t.update_time
|
||||
, t.type
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部 -->
|
||||
|
|
@ -75,12 +77,21 @@
|
|||
<if test="updateTime != null">
|
||||
AND update_time = #{updateTime}
|
||||
</if>
|
||||
<if test="type != null">
|
||||
AND type = #{type}
|
||||
</if>
|
||||
<if test="ids != null and ids.size()>0">
|
||||
AND id IN
|
||||
<foreach collection="ids" open="(" item="id" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="types != null and types.size()>0">
|
||||
AND type IN
|
||||
<foreach collection="types" open="(" item="type" separator="," close=")">
|
||||
#{type}
|
||||
</foreach>
|
||||
</if>
|
||||
ORDER BY id DESC
|
||||
</select>
|
||||
|
||||
|
|
@ -117,6 +128,9 @@
|
|||
<if test="updateTime != null">
|
||||
update_time,
|
||||
</if>
|
||||
<if test="type != null">
|
||||
type,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
|
||||
<if test="createTime != null" >
|
||||
|
|
@ -146,6 +160,9 @@
|
|||
<if test="updateTime != null" >
|
||||
#{updateTime},
|
||||
</if>
|
||||
<if test="type != null" >
|
||||
#{type},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
|
@ -161,6 +178,7 @@
|
|||
template_name=#{templateName},
|
||||
tenant_key=#{tenantKey},
|
||||
update_time=#{updateTime},
|
||||
type=#{type},
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
|
@ -194,6 +212,9 @@
|
|||
<if test="updateTime != null" >
|
||||
update_time=#{updateTime},
|
||||
</if>
|
||||
<if test="type != null" >
|
||||
type=#{type},
|
||||
</if>
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ public interface SalaryAcctExcelService {
|
|||
ExcelPreviewDTO previewImportSalaryAcctResult(SalaryAcctImportParam param);
|
||||
|
||||
|
||||
void cacheImportField(List<Long> salaryItems);
|
||||
void cacheImportField(SalaryAcctResultTemplateSaveParam param);
|
||||
|
||||
void cacheExportField(List<Long> salaryItems);
|
||||
|
||||
|
|
|
|||
|
|
@ -75,5 +75,5 @@ public interface SalaryAcctResultTemplateService {
|
|||
* @param salarySobId
|
||||
* @return
|
||||
*/
|
||||
List<SalaryAcctResultTemplatePO> listBySalarySobId(Long salarySobId);
|
||||
List<SalaryAcctResultTemplatePO> listBySalarySobId(Long salarySobId,List<Integer> types);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -591,11 +591,12 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
// .build())
|
||||
// .collect(Collectors.toList());
|
||||
// 缓存勾选
|
||||
String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN;
|
||||
String cacheValue = (String) Util_DataCache.getObjVal(cacheKey);
|
||||
List<Long> checkItems = JsonUtil.parseList(cacheValue, Long.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, Long.class);
|
||||
// 转换成dto
|
||||
// return SalaryAcctImportFieldDTO.builder().formulaItems(formulaItems).sqlItems(sqlItems).inputItems(inputItems).checkItems(checkItems).build();
|
||||
List<Long> checkItems = new ArrayList<>();
|
||||
List<SalaryAcctResultTemplatePO> salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2));
|
||||
if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) {
|
||||
String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds();
|
||||
checkItems = Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList());
|
||||
}
|
||||
return SalaryAcctImportFieldDTO.builder().itemsByGroup(itemsByGroup).checkItems(checkItems).build();
|
||||
}
|
||||
|
||||
|
|
@ -667,18 +668,22 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
|
||||
@Override
|
||||
public XSSFWorkbook exportImportTemplate(SalaryAcctImportTemplateParam param) {
|
||||
// ValidUtil.doValidator(param);
|
||||
// 从缓存中获取所选的薪资项目
|
||||
String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN;
|
||||
String cacheValue = (String) Util_DataCache.getObjVal(cacheKey);
|
||||
List<Long> checkItems = JsonUtil.parseList(cacheValue, Long.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, Long.class);
|
||||
|
||||
// 查询薪资核算记录
|
||||
SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId());
|
||||
if (Objects.isNull(salaryAcctRecordPO)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除"));
|
||||
}
|
||||
|
||||
List<Long> checkItems = new ArrayList<>();
|
||||
List<SalaryAcctResultTemplatePO> salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2));
|
||||
if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) {
|
||||
String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds();
|
||||
checkItems = Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
// 必须选择导入模板所需的薪资项目
|
||||
if (CollectionUtils.isEmpty(checkItems)) {
|
||||
// 获取所有可以选择的薪资项目
|
||||
SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId());
|
||||
if (Objects.isNull(salaryAcctRecordPO)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除"));
|
||||
}
|
||||
// 查询薪资核算记录所用的薪资账套的薪资项目副本
|
||||
List<SalarySobItemPO> salarySobItems = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
|
||||
List<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId, Collectors.toList());
|
||||
|
|
@ -688,11 +693,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
checkItems = salaryItemIds;
|
||||
}
|
||||
param.setSalaryItemIds(checkItems);
|
||||
// 查询薪资核算记录
|
||||
SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId());
|
||||
if (Objects.isNull(salaryAcctRecordPO)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除"));
|
||||
}
|
||||
|
||||
// // 模板表头(默认必带"个税扣缴义务人"、"姓名")
|
||||
// List<Object> headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "姓名"),
|
||||
// "部门",
|
||||
|
|
@ -976,9 +977,32 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
}
|
||||
|
||||
@Override
|
||||
public void cacheImportField(List<Long> salaryItems) {
|
||||
String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN;
|
||||
Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(salaryItems));
|
||||
public void cacheImportField(SalaryAcctResultTemplateSaveParam saveParam) {
|
||||
Long salaryAcctRecordId = saveParam.getSalaryAcctRecordId();
|
||||
SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId);
|
||||
if (salaryAcctRecordPO == null) {
|
||||
throw new SalaryRunTimeException("薪资核算记录不存在");
|
||||
}
|
||||
|
||||
List<SalaryAcctResultTemplatePO> salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Collections.singletonList(2));
|
||||
if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) {
|
||||
salaryAcctResultTemplatePOS.forEach(templatePO -> getSalaryAcctResultTemplateService(user).deleteById(templatePO.getId()));
|
||||
}
|
||||
|
||||
Date now = new Date();
|
||||
SalaryAcctResultTemplatePO templatePO = SalaryAcctResultTemplatePO.builder()
|
||||
.id(IdGenerator.generate())
|
||||
.type(2)
|
||||
.salarySobId(salaryAcctRecordPO.getSalarySobId())
|
||||
.salaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ","))
|
||||
.templateName("")
|
||||
.creator((long) user.getUID())
|
||||
.createTime(now)
|
||||
.updateTime(now)
|
||||
.deleteType(0)
|
||||
.build();
|
||||
getSalaryAcctResultTemplateService(user).insertIgnoreNull(templatePO);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -1467,7 +1491,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
throw new SalaryRunTimeException("薪资核算记录不存在");
|
||||
}
|
||||
saveParam.setSalarySobId(salaryAcctRecordPO.getSalarySobId());
|
||||
List<SalaryAcctResultTemplatePO> templateBySobId = getSalaryAcctResultTemplateService(user).listBySalarySobId(saveParam.getSalarySobId());
|
||||
List<SalaryAcctResultTemplatePO> templateBySobId = getSalaryAcctResultTemplateService(user).listBySalarySobId(saveParam.getSalarySobId(), Arrays.asList(0, 1));
|
||||
if (saveParam.getId() != null) {
|
||||
Optional<SalaryAcctResultTemplatePO> saveNameOptional = templateBySobId.stream().filter(po -> po.getTemplateName().equals(saveParam.getTemplateName()) && !po.getId().equals(saveParam.getId())).findFirst();
|
||||
if (saveNameOptional.isPresent()) {
|
||||
|
|
@ -1480,6 +1504,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
}
|
||||
salaryAcctResultTemplatePO.setSalaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ","));
|
||||
salaryAcctResultTemplatePO.setTemplateName(saveParam.getTemplateName());
|
||||
salaryAcctResultTemplatePO.setType(0);
|
||||
salaryAcctResultTemplatePO.setUpdateTime(new Date());
|
||||
getSalaryAcctResultTemplateService(user).update(salaryAcctResultTemplatePO);
|
||||
} else {
|
||||
|
|
@ -1489,16 +1514,18 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
}
|
||||
// 新建
|
||||
Date now = new Date();
|
||||
getSalaryAcctResultTemplateService(user).insertIgnoreNull(SalaryAcctResultTemplatePO.builder()
|
||||
SalaryAcctResultTemplatePO templatePO = SalaryAcctResultTemplatePO.builder()
|
||||
.id(IdGenerator.generate())
|
||||
.type(0)
|
||||
.salarySobId(saveParam.getSalarySobId())
|
||||
.salaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ","))
|
||||
.templateName(saveParam.getTemplateName())
|
||||
.creator(Long.valueOf(user.getUID()))
|
||||
.creator((long) user.getUID())
|
||||
.createTime(now)
|
||||
.updateTime(now)
|
||||
.deleteType(0)
|
||||
.build());
|
||||
.build();
|
||||
getSalaryAcctResultTemplateService(user).insertIgnoreNull(templatePO);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1525,7 +1552,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
if (salaryAcctRecordPO == null) {
|
||||
throw new SalaryRunTimeException("薪资核算记录为空");
|
||||
}
|
||||
List<SalaryAcctResultTemplatePO> salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
|
||||
List<SalaryAcctResultTemplatePO> salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(0, 1));
|
||||
if (StringUtils.isNotBlank(param.getTemplateName())) {
|
||||
salaryAcctResultTemplatePOS = salaryAcctResultTemplatePOS.stream().filter(po -> po.getTemplateName().contains(param.getTemplateName())).collect(Collectors.toList());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,10 +63,10 @@ public class SalaryAcctResultTemplateServiceImpl extends Service implements Sala
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<SalaryAcctResultTemplatePO> listBySalarySobId(Long salarySobId) {
|
||||
public List<SalaryAcctResultTemplatePO> listBySalarySobId(Long salarySobId,List<Integer> types) {
|
||||
if (salarySobId == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return getSalaryAcctResultTemplateMapper().listSome(SalaryAcctResultTemplatePO.builder().salarySobId(salarySobId).build());
|
||||
return getSalaryAcctResultTemplateMapper().listSome(SalaryAcctResultTemplatePO.builder().salarySobId(salarySobId).types(types).build());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ public class SalaryAcctController {
|
|||
@GET
|
||||
@Path("/compareSobConfig")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String compareSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "id") Long id) {
|
||||
public String compareSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Long, Boolean>(user).run(getSalaryAcctRecordWrapper(user)::compareSobConfig, id);
|
||||
}
|
||||
|
|
@ -181,7 +181,7 @@ public class SalaryAcctController {
|
|||
@GET
|
||||
@Path("/updateSobConfig")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String updateSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "id") Long id) {
|
||||
public String updateSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Long, Boolean>(user).run(getSalaryAcctRecordWrapper(user)::updateSobConfig, id);
|
||||
}
|
||||
|
|
@ -583,9 +583,9 @@ public class SalaryAcctController {
|
|||
@POST
|
||||
@Path("/acctresult/cacheImportField")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String cacheImportField(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) {
|
||||
public String cacheImportField(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultTemplateSaveParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<List<Long>, String>(user).run(getSalaryAcctExcelService(user)::cacheImportField, param.getSalaryItems());
|
||||
return new ResponseResult<SalaryAcctResultTemplateSaveParam, String>(user).run(getSalaryAcctExcelService(user)::cacheImportField, param);
|
||||
}
|
||||
|
||||
// 薪资核算导出字段缓存
|
||||
|
|
@ -630,7 +630,7 @@ public class SalaryAcctController {
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String exportTemplateList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultTemplateSaveParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SalaryAcctResultTemplateSaveParam, Map<String, Object>>(user).run(getSalaryAcctExcelService(user)::exportTemplateList, param);
|
||||
return new ResponseResult<SalaryAcctResultTemplateSaveParam, Map<String, Object>>(user).run(getSalaryAcctExcelService(user)::exportTemplateList, param);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue