联特 流程获取数据接口

This commit is contained in:
Harryxzy 2025-06-05 10:48:28 +08:00
parent 3b6a6222c9
commit 5aefe5272d
5 changed files with 252 additions and 1 deletions

View File

@ -0,0 +1,41 @@
package com.engine.salary.entity.salaryarchive.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @ClassName LtSalaryYsWorkflowQueryParam
* @author Harryxzy
* @date 2025/6/4 11:33
* @description 联特 薪资预算流程查询参数
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//薪资档案查询参数
public class LtSalaryYsWorkflowQueryParam {
/**
* 个税扣缴义务人
*/
private String taxAgentName;
/**
* 员工id
*/
private Long employeeId;
/**
* 岗位pc
*/
private String gwpc;
/**
* 生产薪酬标准
*/
private String scxcbz;
}

View File

@ -256,4 +256,12 @@ public interface SalaryArchiveService {
* @return
*/
List<SalaryArchivePO> listPayStartDateIsNull(String runStatus);
Map<String, Object> getTaxAgentByEmployee(Long employeeId);
Map<String, Object> getGwPcInfo(String gwpc);
Map<String, Object> getGzxmByScxcbz(String scxcbz);
String getBaseSalary(LtSalaryYsWorkflowQueryParam queryParam);
}

View File

@ -67,8 +67,9 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import weaver.conn.RecordSet;
import weaver.file.ImageFileManager;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
@ -136,6 +137,10 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
}
private SalaryItemService getSalaryItemService(User user) {
return ServiceUtil.getService(SalaryItemServiceImpl.class, user);
}
public AuthService getAuthService(User user) {
return ServiceUtil.getService(AuthServiceImpl.class, user);
}
@ -1399,4 +1404,104 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
}
return getSalaryArchiveMapper().listPayStartDateIsNull(runStatus);
}
@Override
public Map<String, Object> getTaxAgentByEmployee(Long employeeId) {
Map<String, Object> resultMap = new HashMap<>();
if (employeeId == null) {
return resultMap;
}
List<SalaryArchivePO> archiveList = getSalaryArchiveMapper().listSome(SalaryArchivePO.builder().employeeId(employeeId).build());
if (CollectionUtils.isEmpty(archiveList)) {
return resultMap;
}
if (archiveList.size() > 1) {
archiveList = archiveList.stream().filter(a -> a.getRunStatus().equals(SalaryArchiveStatusEnum.FIXED.getValue()) || a.getRunStatus().equals(SalaryArchiveStatusEnum.SUSPEND.getValue())).collect(Collectors.toList());
}
if (CollectionUtils.isEmpty(archiveList) || archiveList.size() > 1) {
return resultMap;
}
Long taxAgentId = archiveList.get(0).getTaxAgentId();
TaxAgentPO taxAgentPO = getTaxAgentService(user).getById(taxAgentId);
if (taxAgentPO == null) {
return resultMap;
}
resultMap.put("id", taxAgentPO.getId());
resultMap.put("name", taxAgentPO.getName());
return resultMap;
}
/**
* 根据岗位PC带出4个倍数关系
* @param gwpc
* @return
*/
@Override
public Map<String, Object> getGwPcInfo(String gwpc) {
Map<String, Object> resultMap = new HashMap<>();
if (StringUtils.isBlank(gwpc)) {
return resultMap;
}
RecordSet recordSet = new RecordSet();
recordSet.isReturnDecryptData(true);
recordSet.execute("select zxz,zdz,nzjbs,jxjsbs,yfqndjjbs,xsqjdtcbs from uf_xcjg where gwpc ='" + gwpc + "'");
while (recordSet.next()) {
resultMap.put("zxz", recordSet.getString("zxz"));
resultMap.put("zdz", recordSet.getString("zdz"));
resultMap.put("nzjbs", recordSet.getString("nzjbs"));
resultMap.put("jxjsbs", recordSet.getString("jxjsbs"));
resultMap.put("yfqndjjbs", recordSet.getString("yfqndjjbs"));
resultMap.put("xsqjdtcbs", recordSet.getString("xsqjdtcbs"));
}
return resultMap;
}
@Override
public Map<String, Object> getGzxmByScxcbz(String scxcbz) {
Map<String, Object> resultMap = new HashMap<>();
if (StringUtils.isBlank(scxcbz)) {
return resultMap;
}
RecordSet recordSet = new RecordSet();
recordSet.isReturnDecryptData(true);
recordSet.execute("select jbgz,jxgz,gwgz,gljt,hb from uf_xcbz where xcdj ='" +scxcbz+ "'");
while (recordSet.next()) {
resultMap.put("jbgz", recordSet.getString("jbgz"));
resultMap.put("jxgz", recordSet.getString("jxgz"));
resultMap.put("gwgz", recordSet.getString("gwgz"));
resultMap.put("gljt", recordSet.getString("gljt"));
resultMap.put("hb", recordSet.getString("hb"));
}
return resultMap;
}
@Override
public String getBaseSalary(LtSalaryYsWorkflowQueryParam queryParam) {
if (StringUtils.isBlank(queryParam.getTaxAgentName()) || queryParam.getEmployeeId() == null) {
return "";
}
Optional<TaxAgentPO> taxAgentPOOptional = getTaxAgentService(user).listAll().stream().filter(t -> t.getName().equals(queryParam.getTaxAgentName())).findFirst();
if (!taxAgentPOOptional.isPresent()) {
return "";
}
TaxAgentPO taxAgentPO = taxAgentPOOptional.get();
List<SalaryArchivePO> salaryArchiveList = getSalaryArchiveMapper().listSome(SalaryArchivePO.builder().employeeId(queryParam.getEmployeeId()).taxAgentId(taxAgentPO.getId()).build());
if (CollectionUtils.isEmpty(salaryArchiveList)) {
return "";
}
Long salaryArchiveId = salaryArchiveList.get(0).getId();
BaseBean baseBean = new BaseBean();
Long baseSalaryItemId = NumberUtils.isCreatable(baseBean.getPropValue("ltSalary", "base_salary_item_id")) ? Long.valueOf(baseBean.getPropValue("ltSalary", "base_salary_item_id")) : 0L;
SalaryItemPO salaryItemPO = getSalaryItemService(user).getById(baseSalaryItemId);
if (salaryItemPO == null) {
return "";
}
// 获取当前生效的基本工资
List<SalaryArchiveItemPO> effectiveSalaryItems = getSalaryArchiveItemService(user).getEffectiveSalaryItems(salaryArchiveId, Collections.singletonList(baseSalaryItemId));
if (CollectionUtils.isEmpty(effectiveSalaryItems)) {
return "";
}
return effectiveSalaryItems.get(0).getItemValue();
}
}

View File

@ -1020,4 +1020,64 @@ public class SalaryArchiveController {
return new ResponseResult<String, Map<String, Object>>(user).run(getSalaryArchiveWrapper(user)::handleRepeatData);
}
/******** 联特二开 start ***********************************************************************************************/
/**
* 根据人员id获取个税缴义务人
*
* @param queryParam
* @return
*/
@POST
@Path("/getTaxAgentByEmployee")
@Produces(MediaType.APPLICATION_JSON)
public String getTaxAgentByEmployee(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveQueryParam queryParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<Long, Map<String, Object>>(user).run(getSalaryArchiveWrapper(user)::getTaxAgentByEmployee, queryParam.getEmployeeId());
}
/**
* 根据岗位PC带出4个倍数关系
*
* @param queryParam
* @return
*/
@POST
@Path("/getGwPcInfo")
@Produces(MediaType.APPLICATION_JSON)
public String getGwPcInfo(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LtSalaryYsWorkflowQueryParam queryParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<String, Map<String, Object>>(user).run(getSalaryArchiveWrapper(user)::getGwPcInfo, queryParam.getGwpc());
}
/**
* 根据薪酬标准生产带出工资项目
*
* @param queryParam
* @return
*/
@POST
@Path("/getGzxmByScxcbz")
@Produces(MediaType.APPLICATION_JSON)
public String getGzxmByScxcbz(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LtSalaryYsWorkflowQueryParam queryParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<String, Map<String, Object>>(user).run(getSalaryArchiveWrapper(user)::getGzxmByScxcbz, queryParam.getScxcbz());
}
/**
* 根据义务人人员带出基本工资
*
* @param queryParam
* @return
*/
@POST
@Path("/getBaseSalary")
@Produces(MediaType.APPLICATION_JSON)
public String getBaseSalary(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LtSalaryYsWorkflowQueryParam queryParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<LtSalaryYsWorkflowQueryParam, String>(user).run(getSalaryArchiveWrapper(user)::getBaseSalary, queryParam);
}
}

View File

@ -643,4 +643,41 @@ public class SalaryArchiveWrapper extends Service {
public String syncPayStartDate() {
return getSalaryArchiveService(user).syncPayStartDate();
}
/**
* 根据人员id获取个税缴义务人
*
* @param employeeId
* @return
*/
public Map<String, Object> getTaxAgentByEmployee(Long employeeId) {
return getSalaryArchiveService(user).getTaxAgentByEmployee(employeeId);
}
/**
* 根据岗位PC带出4个倍数关系
* @param gwpc
*/
public Map<String, Object> getGwPcInfo(String gwpc) {
return getSalaryArchiveService(user).getGwPcInfo(gwpc);
}
/**
* 根据薪酬标准生产带出工资项目
*
* @param scxcbz
* @return
*/
public Map<String, Object> getGzxmByScxcbz(String scxcbz) {
return getSalaryArchiveService(user).getGzxmByScxcbz(scxcbz);
}
/**
* 根据义务人人员带出基本工资
*
* @param queryParam
*/
public String getBaseSalary(LtSalaryYsWorkflowQueryParam queryParam) {
return getSalaryArchiveService(user).getBaseSalary(queryParam);
}
}