Merge branch 'release/2.9.1.2307.01' into feature/230701-工资单反馈

This commit is contained in:
Harryxzy 2023-07-11 15:29:21 +08:00
commit 33a0723ad2
22 changed files with 230 additions and 43 deletions

View File

@ -0,0 +1,16 @@
alter table hrsa_salary_template
add auto_send_cycle_type NUMBER null;
/
alter table hrsa_salary_template
add auto_send_status NUMBER null;
/
alter table hrsa_salary_template
add auto_send_day_of_month varchar2(200) NULL;
/
alter table hrsa_salary_template
add auto_send_time_of_day varchar2(200) NULL;
/

View File

@ -0,0 +1,16 @@
alter table hrsa_salary_template
add auto_send_cycle_type NUMBER null;
/
alter table hrsa_salary_template
add auto_send_status NUMBER null;
/
alter table hrsa_salary_template
add auto_send_day_of_month varchar2(200) NULL;
/
alter table hrsa_salary_template
add auto_send_time_of_day varchar2(200) NULL;
/

View File

@ -0,0 +1,5 @@
ALTER TABLE hrsa_salary_template
ADD COLUMN auto_send_status int NULL,
ADD COLUMN auto_send_cycle_type int NULL,
ADD COLUMN auto_send_day_of_month varchar(200) NULL,
ADD COLUMN auto_send_time_of_day varchar(50) NULL;

View File

@ -0,0 +1,15 @@
alter table hrsa_salary_template
add auto_send_cycle_type NUMBER null
/
alter table hrsa_salary_template
add auto_send_status NUMBER null
/
alter table hrsa_salary_template
add auto_send_day_of_month varchar2(200) NULL
/
alter table hrsa_salary_template
add auto_send_time_of_day varchar2(200) NULL
/

View File

@ -0,0 +1,6 @@
ALTER TABLE hrsa_salary_template
ADD auto_send_status int NULL,
auto_send_cycle_type int NULL,
auto_send_day_of_month varchar(200) NULL,
auto_send_time_of_day varchar(50) NULL
GO

View File

@ -928,6 +928,10 @@ public class SIArchivesBiz {
request.setPositions(Arrays.stream(param.getPositionsStr().split(",")).map(BigDecimal::new).collect(Collectors.toList()));
}
if (StringUtils.isNotBlank(param.getStatusesStr())) {
request.setStatuses(Arrays.stream(param.getStatusesStr().split(",")).map(String::new).collect(Collectors.toList()));
}
request.setNeedAuth(param.getNeedAuth());
request.setTaxAgentEmployeeIds(param.getTaxAgentEmployeeIds());
request.setTaxAgentIds(param.getTaxAgentIds());
@ -937,7 +941,7 @@ public class SIArchivesBiz {
long startNum = (current - 1) * pageSize;
param.setStartNum(startNum);
param.setPageSize(pageSize);
request.setStatuses(param.getStatuses());
// request.setStatuses(param.getStatuses());
request.setKeyword(param.getUserName());
request.setSiSchemeId(param.getSiSchemeId());
@ -1393,8 +1397,9 @@ public class SIArchivesBiz {
conditionItems.add(departmentIds);
SearchConditionItem statuses = conditionFactory.createCondition(ConditionType.SELECT, 502327, "statuses");
SearchConditionItem statuses = conditionFactory.createCondition(ConditionType.SELECT, 502327, "statusesStr");
statuses.setInputType("select");
statuses.setMultiple(true);
statuses.setOptions(userStatusOptions);
statuses.setColSpan(2);
statuses.setFieldcol(16);

View File

@ -38,4 +38,14 @@ public class SysSalaryItemBiz {
sqlSession.close();
}
}
public SysSalaryItemPO selectOneByName(String name) {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SysSalaryItemMapper mapper = sqlSession.getMapper(SysSalaryItemMapper.class);
return mapper.selectOneByName(name);
} finally {
sqlSession.close();
}
}
}

View File

@ -50,6 +50,8 @@ public class SalaryAcctEmployeeQueryParam extends BaseQueryParam {
*/
private SalaryEmployeeStatusEnum status;
//状态(多选)
private List<String> statuses;
//离职日期")
private LocalDateRange dismissDate;

View File

@ -10,6 +10,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
import java.util.List;
/**
* 薪资核算结果查询参数
@ -46,6 +47,8 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam {
//状态
private SalaryEmployeeStatusEnum status;
//状态(多选)
private List<String> statuses;
//离职日期
private LocalDateRange dismissDate;

View File

@ -48,6 +48,8 @@ public class SalaryArchiveQueryParam extends BaseQueryParam {
//状态
private String userstatus;
//状态(多选)
private List<String> statuses;
//入职日期
private List<String> hiredate;

View File

@ -54,8 +54,8 @@ public class InsuranceAccountBO {
.id(e.getId())
.accountant(e.getAccountant())
.billMonth(e.getBillMonth())
.billStatus(queryLabelId(e.getBillStatus()).getDefaultLabel())
// .billStatus(e.getBillStatus().toString())
// .billStatus(queryLabelId(e.getBillStatus()).getDefaultLabel())
.billStatus(e.getBillStatus().toString())
.fundNum(e.getFundNum())
.fundPay(SalaryEntityUtil.thousandthConvert(e.getFundPay()))
.lastTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(e.getUpdateTime()))

View File

@ -38,6 +38,7 @@ public class InsuranceArchivesListParam extends BaseQueryParam {
//状态(多线)")
private List<String> statuses;
private String statusesStr;
//岗位(多选)")
private List<BigDecimal> positions;

View File

@ -154,6 +154,12 @@
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.statuses != null and param.statuses.size()>0">
AND e.status IN
<foreach collection="param.statuses" open="(" item="userstatus" separator="," close=")">
#{userstatus}
</foreach>
</if>
<!-- 入职日期 -->
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.companystartdate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
@ -229,7 +235,12 @@
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.statuses != null and param.statuses.size()>0">
AND e.status IN
<foreach collection="param.statuses" open="(" item="userstatus" separator="," close=")">
#{userstatus}
</foreach>
</if>
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.companystartdate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>
@ -305,7 +316,12 @@
<if test="param.userstatus != null and param.userstatus != ''">
AND e.status = #{param.userstatus}
</if>
<if test="param.statuses != null and param.statuses.size()>0">
AND e.status IN
<foreach collection="param.statuses" open="(" item="userstatus" separator="," close=")">
#{userstatus}
</foreach>
</if>
<if test="param.hiredate != null and param.hiredate.size() == 2">
AND (e.companystartdate BETWEEN #{param.hiredate[0]} AND #{param.hiredate[1]})
</if>

View File

@ -497,6 +497,7 @@
or (param.subcompanyIds != null and param.subcompanyIds.size()>0)
or (param.departmentIds != null and param.departmentIds.size()>0)
or (param.positionIds != null and param.positionIds.size()>0)
or (param.statuses != null and param.statuses.size()>0)
or (param.status != null and param.status.toString != 'ALL')">
AND t.employee_id IN
(
@ -528,6 +529,12 @@
#{positionId}
</foreach>
</if>
<if test="param.statuses != null and param.statuses.size()>0">
AND em.status IN
<foreach collection="param.statuses" open="(" item="userStatus" separator="," close=")">
#{userStatus}
</foreach>
</if>
-- 在职
<if test="param.status != null and param.status.toString == 'NORMAL'">
AND em.status in (0,1,2,3)
@ -581,7 +588,8 @@
or (param.workcode != null and param.workcode != '')
or (param.subcompanyIds != null and param.subcompanyIds.size()>0)
or (param.departmentIds != null and param.departmentIds.size()>0)
or (param.positionIds != null and param.positionIds.size()>0)
or (param.positionIds != null and param.positionIds.size()>0)
or (param.statuses != null and param.statuses.size()>0)
or (param.status != null and param.status.toString != 'ALL')">
AND t.employee_id IN
(
@ -611,6 +619,12 @@
#{positionId}
</foreach>
</if>
<if test="param.statuses != null and param.statuses.size()>0">
AND em.status IN
<foreach collection="param.statuses" open="(" item="userStatus" separator="," close=")">
#{userStatus}
</foreach>
</if>
-- 在职
<if test="param.status != null and param.status.toString == 'NORMAL'">
AND em.status in (0,1,2,3)
@ -664,7 +678,8 @@
or (param.workcode != null and param.workcode != '')
or (param.subcompanyIds != null and param.subcompanyIds.size()>0)
or (param.departmentIds != null and param.departmentIds.size()>0)
or (param.positionIds != null and param.positionIds.size()>0)
or (param.positionIds != null and param.positionIds.size()>0)
or (param.statuses != null and param.statuses.size()>0)
or (param.status != null and param.status.toString != 'ALL')">
AND t.employee_id IN
(
@ -694,6 +709,12 @@
#{positionId}
</foreach>
</if>
<if test="param.statuses != null and param.statuses.size()>0">
AND em.status IN
<foreach collection="param.statuses" open="(" item="userStatus" separator="," close=")">
#{userStatus}
</foreach>
</if>
-- 在职
<if test="param.status != null and param.status.toString == 'NORMAL'">
AND em.status in (0,1,2,3)

View File

@ -1,7 +1,6 @@
package com.engine.salary.mapper.salaryitem;
import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -62,5 +61,6 @@ public interface SysSalaryItemMapper {
* @return 返回影响行数
*/
int delete(SysSalaryItemPO SysSalaryItemPO);
SysSalaryItemPO selectOneByName(String name);
}

View File

@ -609,5 +609,12 @@
AND delete_type = 0
</delete>
<!-- 根据主键获取单条记录 -->
<select id="selectOneByName" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_sys_salary_item t
WHERE name = #{name} AND delete_type = 0
</select>
</mapper>

View File

@ -540,7 +540,10 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService
param.setDimissionDateEnd(param.getDimissionDate()[1]);
}
if (Objects.equals("fromQuickSearch", param.getDataSource())) {
request.setStatuses(param.getStatuses());
// request.setStatuses(param.getStatuses());
if (StringUtils.isNotBlank(param.getStatusesStr())) {
request.setStatuses(Arrays.stream(param.getStatusesStr().split(",")).map(String::new).collect(Collectors.toList()));
}
request.setKeyword(param.getUserName());
} else {
request = param;

View File

@ -31,6 +31,7 @@ import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import weaver.conn.mybatis.MyBatisFactory;
@ -103,7 +104,9 @@ public class SIImportServiceImpl extends Service implements SIImportService {
param.setDimissionDateEnd(param.getDimissionDate()[1]);
}
if (Objects.equals("fromQuickSearch", param.getDataSource())) {
request.setStatuses(param.getStatuses());
if (StringUtils.isNotBlank(param.getStatusesStr())) {
request.setStatuses(Arrays.stream(param.getStatusesStr().split(",")).map(String::new).collect(Collectors.toList()));
}
request.setKeyword(param.getUserName());
request.setStartNum(param.getStartNum());
request.setPageSize(param.getPageSize());

View File

@ -71,7 +71,7 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService
private SysSalaryItemBiz sysSalaryItemBiz = new SysSalaryItemBiz();
//
// @Autowired
// private LoggerTemplate salaryItemLoggerTemplate;
@Override
@ -140,27 +140,13 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService
.sorted(new Comparator<SalaryItemPO>() {
@Override
public int compare(SalaryItemPO o1, SalaryItemPO o2) {
if(o1 == null)
return 1;
if(o2 == null)
return -1;
if(o1 == null && o2 == null)
return 0;
if(o1.getSortedIndex() == null && o2.getSortedIndex() == null){
Integer systemType1=o1.getSystemType();
Integer systemType2=o2.getSystemType();
if(systemType1 == null)
systemType1=0;
if(systemType2 == null)
systemType2=0;
Integer systemType1=o1.getSystemType() == null ? 0 : o1.getSystemType();
Integer systemType2=o2.getSystemType() == null ? 0 : o2.getSystemType();
return systemType1.compareTo(systemType2);
}else{
Integer sortedIndex1=o1.getSortedIndex();
Integer sortedIndex2=o2.getSortedIndex();
if(sortedIndex1 == null)
sortedIndex1=0;
if(sortedIndex2 == null)
sortedIndex2=0;
Integer sortedIndex1=o1.getSortedIndex() == null ? 0 : o1.getSortedIndex();
Integer sortedIndex2=o2.getSortedIndex() == null ? 0 : o2.getSortedIndex();
return sortedIndex2.compareTo(sortedIndex1);
}
}
@ -203,8 +189,8 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98326, "薪资项目名称已存在,请重新命名"));
}
// 名称不能和已有的系统薪资项目重名
List<SysSalaryItemPO> sysSalaryItemPOS = sysSalaryItemBiz.listSome(SysSalaryItemPO.builder().name(saveParam.getName()).build());
if (CollectionUtils.isNotEmpty(sysSalaryItemPOS)) {
SysSalaryItemPO sysSalaryItem = sysSalaryItemBiz.selectOneByName(saveParam.getName());
if (sysSalaryItem != null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98328, "自定义薪资项目的名称不能和系统薪资项目的名称重名"));
}
SalaryItemPO salaryItemPO = SalaryItemBO.convert2SalaryItemPO(saveParam, (long) user.getUID());

View File

@ -21,6 +21,7 @@ import com.engine.salary.wrapper.SISchemeWrapper;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jetbrains.annotations.NotNull;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
@ -32,6 +33,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.Arrays;
@ -172,16 +174,7 @@ public class SISchemeController {
@Path("/export")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response export(@Context HttpServletRequest request, @Context HttpServletResponse response) {
InsuranceArchivesListParam param = new InsuranceArchivesListParam();
String ids = request.getParameter("ids");
if(StringUtils.isNotBlank(ids)){
param.setIds( Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList()));
}
String runStatuses = request.getParameter("runStatuses");
if(StringUtils.isNotBlank(runStatuses)){
param.setRunStatuses( Arrays.stream(runStatuses.split(",")).map(String::valueOf).collect(Collectors.toList()));
}
InsuranceArchivesListParam param = buildInsuranceArchivesListParam(request);
User user = HrmUserVarify.getUser(request, response);
XSSFWorkbook workbook = getService(user).export(param);
String fileName ;
@ -298,6 +291,63 @@ public class SISchemeController {
.header("Cache-Control", "no-cache").build();
}
@NotNull
private InsuranceArchivesListParam buildInsuranceArchivesListParam(HttpServletRequest request) {
InsuranceArchivesListParam param = new InsuranceArchivesListParam();
String ids = request.getParameter("ids");
if(StringUtils.isNotBlank(ids)){
param.setIds( Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList()));
}
String runStatuses = request.getParameter("runStatuses");
if(StringUtils.isNotBlank(runStatuses)){
param.setRunStatuses( Arrays.stream(runStatuses.split(",")).map(String::valueOf).collect(Collectors.toList()));
}
String statusesStr = request.getParameter("statusesStr");
if (StringUtils.isNotBlank(statusesStr)) {
param.setStatuses(Arrays.stream(statusesStr.split(",")).map(String::new).collect(Collectors.toList()));
}
String userName = request.getParameter("username");
if (StringUtils.isNotBlank(userName)) {
param.setUserName(userName);
}
String jobNum = request.getParameter("jobNum");
if (StringUtils.isNotBlank(jobNum)) {
param.setJobNum(jobNum);
}
String taxAgentId = request.getParameter("taxAgentId");
if (StringUtils.isNotBlank(taxAgentId)) {
param.setTaxAgentId(Long.parseLong(taxAgentId));
}
String departmentIds = request.getParameter("departmentIdsStr");
if (StringUtils.isNotBlank(departmentIds)) {
param.setDepartmentIds(Arrays.stream(departmentIds.split(",")).map(BigDecimal::new).collect(Collectors.toList()));
}
String subcompanyIds = request.getParameter("subcompanyIdsStr");
if (StringUtils.isNotBlank(subcompanyIds)) {
param.setSubcompanyIds(Arrays.stream(subcompanyIds.split(",")).map(BigDecimal::new).collect(Collectors.toList()));
}
String positions = request.getParameter("positionsStr");
if (StringUtils.isNotBlank(positions)) {
param.setPositions(Arrays.stream(positions.split(",")).map(BigDecimal::new).collect(Collectors.toList()));
}
String siSchemeId = request.getParameter("siSchemeId");
if (StringUtils.isNotBlank(siSchemeId)) {
param.setSiSchemeId(Long.valueOf(siSchemeId));
}
String fundSchemeId = request.getParameter("fundSchemeId");
if (StringUtils.isNotBlank(fundSchemeId)) {
param.setFundSchemeId(Long.valueOf(fundSchemeId));
}
String otherSchemeId = request.getParameter("otherSchemeId");
if (StringUtils.isNotBlank(otherSchemeId)) {
param.setOtherSchemeId(Long.valueOf(otherSchemeId));
}
return param;
}
}

View File

@ -297,6 +297,10 @@ public class SalaryAcctController {
if (StringUtils.isNotBlank(status)) {
param.setStatus(SalaryEmployeeStatusEnum.parseByValue(Integer.parseInt(status)));
}
String statuses = request.getParameter("statuses");
if (StringUtils.isNotBlank(statuses)) {
param.setStatuses(Arrays.stream(statuses.split(",")).map(String::valueOf).collect(Collectors.toList()));
}
//fixme 日期
request.getParameter("dismissDate");
String ids = request.getParameter("ids");
@ -709,6 +713,10 @@ public class SalaryAcctController {
if (StringUtils.isNotBlank(status)) {
param.setStatus(SalaryEmployeeStatusEnum.parseByValue(Integer.parseInt(status)));
}
String statuses = request.getParameter("statuses");
if (StringUtils.isNotBlank(statuses)) {
param.setStatuses(Arrays.stream(statuses.split(",")).map(String::valueOf).collect(Collectors.toList()));
}
//fixme 日期
request.getParameter("dismissDate");
String consolidatedTaxation = request.getParameter("consolidatedTaxation");

View File

@ -456,6 +456,10 @@ public class SalaryArchiveController {
if (StringUtils.isNotBlank(username)) {
param.setUsername(username);
}
String workcode = request.getParameter("workcode");
if (StringUtils.isNotBlank(workcode)) {
param.setWorkcode(workcode);
}
String taxAgentId = request.getParameter("taxAgentId");
if (StringUtils.isNotBlank(taxAgentId)) {
param.setTaxAgentId(Long.valueOf(taxAgentId));
@ -464,6 +468,10 @@ public class SalaryArchiveController {
if (StringUtils.isNotBlank(departmentIds)) {
param.setDepartmentIds(Arrays.stream(departmentIds.split(",")).map(Long::valueOf).collect(Collectors.toList()));
}
String subcompanyIds = request.getParameter("subcompanyIds");
if (StringUtils.isNotBlank(subcompanyIds)) {
param.setSubcompanyIds(Arrays.stream(subcompanyIds.split(",")).map(Long::valueOf).collect(Collectors.toList()));
}
String positionIds = request.getParameter("positionIds");
if (StringUtils.isNotBlank(positionIds)) {
param.setPositionIds(Arrays.stream(positionIds.split(",")).map(Long::valueOf).collect(Collectors.toList()));
@ -472,6 +480,10 @@ public class SalaryArchiveController {
if (StringUtils.isNotBlank(userstatus)) {
param.setUserstatus(userstatus);
}
String statuses = request.getParameter("statuses");
if (StringUtils.isNotBlank(statuses)) {
param.setStatuses(Arrays.stream(statuses.split(",")).map(String::valueOf).collect(Collectors.toList()));
}
String hiredate = request.getParameter("hiredate");
if (StringUtils.isNotBlank(hiredate)) {
param.setHiredate(Arrays.asList(hiredate.split(",")));