Commit bcef73a0 authored by hongguangwu's avatar hongguangwu

MVP1.7.11- HCM工资相关

parent 9636635a
......@@ -360,6 +360,18 @@ public class TSettleDomainController {
public TSettleDomainSelectVo getSettleDomainVoById(@RequestBody String id) {
return tSettleDomainService.getSettleDomainVoById(id);
}
/**
* @param deptNo 项目主键
* @Description: 通过id获取结算主体及单位部分信息
* @Author: hgw
* @Date: 2022/8/10 17:01
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo>
**/
@Inner
@PostMapping("/inner/getSettleDomainVoByNo")
public TSettleDomainSelectVo getSettleDomainVoByNo(@RequestBody String deptNo) {
return tSettleDomainService.getSettleDomainVoByNo(deptNo);
}
/**
* @param deptId 结算主体id
......
......@@ -74,6 +74,7 @@ public interface TSettleDomainMapper extends BaseMapper<TSettleDomain> {
* @return: com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo
**/
TSettleDomainSelectVo getSettleDomainVoById(@Param("id") String id);
TSettleDomainSelectVo getSettleDomainVoByNo(@Param("deptNo") String deptNo);
/**
* 获取所有客户单位的项目信息
......
......@@ -109,6 +109,7 @@ public interface TSettleDomainService extends IService<TSettleDomain> {
TSettleDomainSelectVo getSettleDomainVoById(String id);
TSettleDomainSelectVo getSettleDomainVoByNo(String deptNo);
/**
* 获取所有客户单位的项目信息
......
......@@ -189,6 +189,11 @@ public class TSettleDomainServiceImpl extends ServiceImpl<TSettleDomainMapper, T
return baseMapper.getSettleDomainVoById(id);
}
@Override
public TSettleDomainSelectVo getSettleDomainVoByNo(String deptNo) {
return baseMapper.getSettleDomainVoByNo(deptNo);
}
@Override
public List<TSettleDomainSelectVo> selectAllSettleDomainSelectVos() {
return baseMapper.selectAllSettleDomainSelectVos();
......
......@@ -357,6 +357,19 @@
WHERE a.id=#{id} GROUP BY a.id
</select>
<select id="getSettleDomainVoByNo"
resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo">
SELECT
<include refid="Base_Column_List"/>,
a.CUSTOMER_ID AS 'customerId',
a.CUSTOMER_NAME as 'customerName',
a.CUSTOMER_NO as 'customerCode',
a.INVOICE_TITLE_SALARY as 'businessSubjectName'
FROM
t_settle_domain a
WHERE a.DEPART_NO = #{deptNo} GROUP BY a.id
</select>
<select id="getPagePerMission" resultMap="tSettleDomainMap">
SELECT
......
......@@ -20,6 +20,10 @@ public class SalaryUploadParamVo {
// 结算主体id;必填
String settleDepart;
// HCM使用的
String settleDepartNo;
// HCM使用的
String createUserLoginName;
// 工资配置结算月等信息的id
String configId;
......
package com.yifu.cloud.plus.v1.yifu.salary.controller;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccount;
import com.yifu.cloud.plus.v1.yifu.salary.service.SalaryUploadService;
import com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryUploadParamVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryDetailVo;
......@@ -29,11 +31,8 @@ public class SalaryUploadController {
private final SalaryUploadService salaryUploadService;
/**
* @param jsonString Excel表-JsonString
* @param settleDepart 结算主体id
* @param configId 配置方案id
* @param salaryType 报表类型id
* @Description:
* @param vo : jsonString Excel表-JsonString;settleDepart 结算主体id;configId 配置方案id;salaryType 报表类型id
* @Description: 上传薪资表
* @Author: hgw
* @Date: 2019/9/11 15:21
* @return: com.yifu.cloud.v1.common.core.util.R
......@@ -52,4 +51,23 @@ public class SalaryUploadController {
return salaryUploadService.getBill(salaryFormId);
}
/**
* @param idCardList 身份证list
* @param salaryMonth 工资月
* @Description: HCM查询工资
* @Author: hgw
* @Date: 2025/5/20 20:26
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.baomidou.mybatisplus.core.metadata.IPage < com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccount>>
**/
@Operation(description = "HCM查询工资")
@PostMapping("/getHcmSalaryByIdCardListAndMonth")
public R<List<TSalaryAccount>> getSalaryByIdCardList(@RequestBody List<String> idCardList, @RequestParam String salaryMonth) {
if (Common.isEmpty(idCardList) || idCardList.isEmpty()) {
return R.failed("身份证不可为空");
} else if (idCardList.size() > 3000) {
return R.failed("身份证数不可大于3000!");
}
return new R<>(salaryUploadService.getSalaryByIdCardList(idCardList, salaryMonth));
}
}
......@@ -131,6 +131,20 @@ public class TSalaryStandardController {
return tSalaryStandardService.deleteSalaryById(id);
}
/**
* @param id 工资主表ID
* @Description: HCM通过id删除标准薪酬工资表
* @Author: hgw
* @Date: 2025/5/20 19:59
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/
@Operation(summary = "HCM通过id删除标准薪酬工资表", description = "通过id删除标准薪酬工资表")
@SysLog("HCM通过id删除标准薪酬工资表")
@GetMapping("/deleteById")
public R<String> deleteById(@RequestParam String id) {
return tSalaryStandardService.deleteSalaryById(id);
}
/**
* 标准薪酬工资表 批量导出
*
......
......@@ -68,6 +68,9 @@ public interface TSalaryAccountItemMapper extends BaseMapper<TSalaryAccountItem>
**/
List<TSalaryAccountItem> getSalaryItemVoList(@Param("idCardList") List<String> idCardList, @Param("invoiceTitle") String invoiceTitle);
// HCM使用
List<TSalaryAccountItem> getSalaryItemVoListByHcm(@Param("accIdList") List<String> accIdList);
/**
* @param deptId 结算主体id
* @param javaFiedName 属性名
......
......@@ -49,6 +49,16 @@ public interface TSalaryAccountMapper extends BaseMapper<TSalaryAccount> {
IPage<TSalaryAccount> getEmpAccountPage(Page<TSalaryAccount> page, @Param("tSalaryAccount") TSalaryAccountSearchVo tSalaryAccount);
/**
* @param idCardList
* @param salaryMonth
* @Description: 给HCM使用的,按身份证与工资月查询
* @Author: hgw
* @Date: 2025/5/20 20:36
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccount>
**/
List<TSalaryAccount> getSalaryByIdCardList(@Param("idCardList") List<String> idCardList, @Param("salaryMonth") String salaryMonth);
int getEmpAccountCount(@Param("tSalaryAccount") TSalaryAccountSearchVo tSalaryAccount);
List<TSalaryAccountExportSpecialVo> getEmpAccountExport(@Param("tSalaryAccount") TSalaryAccountSearchVo tSalaryAccount);
......
package com.yifu.cloud.plus.v1.yifu.salary.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccount;
import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandard;
import com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryUploadParamVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryAccountSearchVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryDetailVo;
import java.util.List;
......@@ -28,4 +31,6 @@ public interface SalaryUploadService extends IService<TSalaryStandard> {
R<TSalaryDetailVo> getBill(String salaryFormId);
List<TSalaryAccount> getSalaryByIdCardList(List<String> idCardList, String salaryMonth);
}
......@@ -51,6 +51,9 @@ public interface TSalaryAccountItemService extends IService<TSalaryAccountItem>
**/
Map<String, List<TSalaryAccountItem>> getSalaryItemVoList(List<String> idCardList, String invoiceTitle);
// HCM查明细使用
Map<String, List<TSalaryAccountItem>> getSalaryItemVoListByHcm(List<String> accIdList);
/**
* 工资报账表附加-工资明细简单分页查询
*
......
......@@ -53,6 +53,8 @@ public interface TSalaryAccountService extends IService<TSalaryAccount> {
**/
IPage<TSalaryAccount> getEmpAccountPage(Page<TSalaryAccount> page, TSalaryAccountSearchVo searchVo);
List<TSalaryAccount> getSalaryByIdCardList(List<String> idCardList, String salaryMonth);
/**
* @Author fxj
* @Description 薪资报账导出统一导出限制
......
......@@ -2,6 +2,8 @@ package com.yifu.cloud.plus.v1.yifu.salary.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.admin.api.dto.UserInfo;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
......@@ -12,6 +14,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprSocialProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprUpmsProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.salary.entity.*;
......@@ -27,6 +30,8 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.cache.support.SimpleValueWrapper;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -46,13 +51,15 @@ import java.util.concurrent.atomic.AtomicInteger;
@Log4j2
@AllArgsConstructor
@Service("salaryUploadService")
@EnableConfigurationProperties({DaprArchivesProperties.class, DaprSocialProperties.class})
@EnableConfigurationProperties({DaprArchivesProperties.class, DaprSocialProperties.class, DaprUpmsProperties.class})
public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper, TSalaryStandard> implements SalaryUploadService {
private final DaprArchivesProperties archivesProperties;
private final DaprSocialProperties socialProperties;
private final DaprUpmsProperties daprUpmsProperties;
private final TSalaryStandardService tSalaryStandardService;
private final MSalaryEstimateService mSalaryEstimateService;
......@@ -131,13 +138,21 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
// R<List<ErrorMessage>> salaryUpload(String jsonString, String settleDepart, String configId, String salaryType, String orderId)
String jsonString = vo.getJsonString();
String settleDepart = vo.getSettleDepart();
String settleDepartNo = vo.getSettleDepartNo();
String configId = vo.getConfigId();
String salaryType = vo.getSalaryType();
String orderId = vo.getOrderId();
if (Common.isNotNull(jsonString) && Common.isNotNull(settleDepart) && Common.isNotNull(salaryType)) {
R<TSettleDomainSelectVo> sdr = HttpDaprUtil.invokeMethodPost(archivesProperties.getAppUrl(), archivesProperties.getAppId()
, "/tsettledomain/inner/getSettleDomainVoById", settleDepart, TSettleDomainSelectVo.class, SecurityConstants.FROM_IN);
//String orderId = vo.getOrderId()
if (Common.isNotNull(jsonString) && Common.isNotNull(salaryType)
&& (Common.isNotNull(settleDepart)||Common.isNotNull(settleDepartNo)) ) {
R<TSettleDomainSelectVo> sdr = null;
if (Common.isNotNull(settleDepart)) {
sdr = HttpDaprUtil.invokeMethodPost(archivesProperties.getAppUrl(), archivesProperties.getAppId()
, "/tsettledomain/inner/getSettleDomainVoById", settleDepart, TSettleDomainSelectVo.class, SecurityConstants.FROM_IN);
} else if (Common.isNotNull(settleDepartNo)) {
sdr = HttpDaprUtil.invokeMethodPost(archivesProperties.getAppUrl(), archivesProperties.getAppId()
, "/tsettledomain/inner/getSettleDomainVoByNo", settleDepartNo, TSettleDomainSelectVo.class, SecurityConstants.FROM_IN);
}
// 结算主体
TSettleDomainSelectVo dept = null;
if (sdr != null && sdr.getData() != null) {
......@@ -168,6 +183,17 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
if (null == user || null == user.getId()) {
return R.failed("获取登录用户信息失败!");
}
String createUserLoginName = vo.getCreateUserLoginName();
if (Common.isNotNull(createUserLoginName)) {
R<SysUser> userR = HttpDaprUtil.invokeMethodGet(daprUpmsProperties.getAppUrl()
,daprUpmsProperties.getAppId(), "/user/inner/getSysUserByUsername", "?username="
+ createUserLoginName, SysUser.class, SecurityConstants.FROM_IN);
if (null != userR && Common.isNotNull(userR.getData())) {
user = getNewUser(userR.getData());
} else {
return R.failed("获取用户信息失败!登录名:" + createUserLoginName);
}
}
TConfigSalary configSalary;
......@@ -274,6 +300,19 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
return R.failed("导入数据不可为空");
}
private YifuUser getNewUser(SysUser user) {
Set<String> dbAuthsSet = new HashSet<>();
Collection<? extends GrantedAuthority> authorities = AuthorityUtils
.createAuthorityList(dbAuthsSet.toArray(new String[0]));
return new YifuUser(user.getUserId(), 1L, "", user.getUsername(),
user.getNickname(), "0", SecurityConstants.BCRYPT + "123456",
user.getPhone(), true, true, true,
true,
"1", authorities, "1",
null, null,
null,null);
}
/**
* @param sav 报账表vo
* @param dept 结算主体
......@@ -2159,5 +2198,26 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
return zeroArr[num] + nowNums;
}
@Override
public List<TSalaryAccount> getSalaryByIdCardList(List<String> idCardList, String salaryMonth) {
List<TSalaryAccount> list = tSalaryAccountService.getSalaryByIdCardList(idCardList, salaryMonth);
if (list != null && !list.isEmpty()) {
List<String> accountIdList = new ArrayList<>();
for (TSalaryAccount a : list) {
accountIdList.add(a.getId());
}
// TODO-明细
Map<String, List<TSalaryAccountItem>> itemMap = tSalaryAccountItemService.getSalaryItemVoListByHcm(accountIdList);
List<TSalaryAccountItem> itemList;
for (TSalaryAccount a : list) {
itemList = itemMap.get(a.getId());
if (itemList != null) {
a.setSaiList(itemList);
}
}
}
return list;
}
}
......@@ -126,6 +126,24 @@ public class TSalaryAccountItemServiceImpl extends ServiceImpl<TSalaryAccountIte
return itemMap;
}
@Override
public Map<String, List<TSalaryAccountItem>> getSalaryItemVoListByHcm(List<String> accIdList) {
List<TSalaryAccountItem> list = baseMapper.getSalaryItemVoListByHcm(accIdList);
Map<String, List<TSalaryAccountItem>> itemMap = new HashMap<>();
if (list != null && !list.isEmpty()) {
List<TSalaryAccountItem> voList;
for (TSalaryAccountItem item : list) {
voList = itemMap.get(item.getSalaryAccountId());
if (voList == null) {
voList = new ArrayList<>();
}
voList.add(item);
itemMap.put(item.getSalaryAccountId(), voList);
}
}
return itemMap;
}
/**
* @param settleDepartId 结算主体id
* @param javaFiedName 属性名
......
......@@ -46,6 +46,7 @@ import com.yifu.cloud.plus.v1.yifu.salary.vo.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.compress.utils.Lists;
import org.apache.ibatis.annotations.Param;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -121,6 +122,17 @@ public class TSalaryAccountServiceImpl extends ServiceImpl<TSalaryAccountMapper,
return baseMapper.getEmpAccountPage(page, searchVo);
}
/**
* @Description: HCM查询
* @Author: hgw
* @Date: 2025-5-20 20:37:48
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccount>
**/
@Override
public List<TSalaryAccount> getSalaryByIdCardList(@Param("idCardList") List<String> idCardList, @Param("salaryMonth") String salaryMonth) {
return baseMapper.getSalaryByIdCardList(idCardList, salaryMonth);
}
/**
* @Author fxj
* @Description
......
......@@ -475,6 +475,18 @@
AND a.DELETE_FLAG = 0 and a.FORM_TYPE in ('0','1','2')
</where>
</select>
<!-- 获取所有数据,组装map,HCM使用 -->
<select id="getSalaryItemVoListByHcm" resultMap="tSalaryAccountItemMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_salary_account_item i
where i.SALARY_ACCOUNT_ID in
<foreach item="item" index="index" collection="accIdList" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="getSumByAccountId" resultType="java.util.Map">
SELECT
a.SALARY_ACCOUNT_ID as 'key',
......
......@@ -669,6 +669,17 @@
where a.DELETE_FLAG = 0
<include refid="tSalaryAccount_where"/>
</select>
<!--项目薪酬查询-工资条查询-->
<select id="getSalaryByIdCardList" resultMap="tSalaryAccountMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_salary_account a
where a.DELETE_FLAG = 0 and a.salary_month = #{salaryMonth} and a.EMP_IDCARD in
<foreach item="id" index="index" collection="idCardList" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!--tSalaryAccount简单分页查询-->
<select id="getTSalaryAccountPageDataByIds" resultMap="tSalaryAccountMap">
SELECT
......
......@@ -517,6 +517,24 @@ public class UserController {
return null;
}
/**
* @Description: 获取用户,根据用户名
* @Author: hgw
* @Date: 2025-5-20 19:44:18
* @return: java.lang.Integer
**/
@Inner
@GetMapping("/inner/getSysUserByUsername")
public SysUser getSysUserByUsername(@RequestParam(name = "username") String username) {
SysUser userInfo = userService.getOne(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUsername, username)
.eq(SysUser::getDelFlag, CommonConstants.ZERO_STRING).last(CommonConstants.LAST_ONE_SQL));
if (Common.isNotNull(userInfo)){
userInfo.setPassword(null);
return userInfo;
}
return null;
}
/**
* @Author fxj
* @Description 通过openId验证是否存在用户
......
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