万德隆调整

This commit is contained in:
Harryxzy 2025-07-17 11:40:42 +08:00
parent db99e8239b
commit d3fc58a7e4
12 changed files with 662 additions and 37 deletions

View File

@ -0,0 +1,106 @@
package com.engine.salary.action;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemBatchSaveParam;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemSaveParam;
import com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO;
import com.engine.salary.enums.salaryarchive.WdlArchiveWorkflowEnum;
import com.engine.salary.mapper.archive.WdlArchiveWorkflowMapper;
import com.engine.salary.util.JsonUtil;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.wrapper.SalaryArchiveItemWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.math.NumberUtils;
import weaver.general.BaseBean;
import weaver.hrm.User;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;
import java.util.Date;
import java.util.List;
/**
* @ClassName WdlSalaryArchiveTriggerAction
* @author Harryxzy
* @date 2025/7/9 15:53
* @description 万德隆触发调薪定薪action
*/
@Slf4j
public class WdlSalaryArchiveTriggerAction implements Action {
private WdlArchiveWorkflowMapper getWdlArchiveWorkflowMapper() {
return MapperProxyFactory.getProxy(WdlArchiveWorkflowMapper.class);
}
private SalaryArchiveItemWrapper getSalaryArchiveItemWrapper(User user) {
return ServiceUtil.getService(SalaryArchiveItemWrapper.class, user);
}
@Override
public String execute(RequestInfo requestInfo) {
try {
User user = requestInfo.getRequestManager().getUser();
String requestid = requestInfo.getRequestid();
WdlArchiveWorkflowPO po = getWdlArchiveWorkflowMapper().getByRequstId(requestid);
BaseBean baseBean = new BaseBean();
if (po == null) {
baseBean.writeLog("万德隆调薪定薪触发action未找到需要执行的任务 requestId:" + requestid);
return SUCCESS;
}
if (po.getExeType() != null && po.getExeType().equals(NumberUtils.INTEGER_ONE)) {
baseBean.writeLog("万德隆调薪定薪触发action未找到待执行的任务 requestId:" + requestid + po.getId());
return SUCCESS;
}
if (po.getOperateType() == null) {
baseBean.writeLog("万德隆调薪定薪触发action操作类型为null requestId:" + requestid );
return SUCCESS;
}
if (po.getOperateType().equals(WdlArchiveWorkflowEnum.SINGLE_EDIT.getValue())) {
SalaryArchiveItemSaveParam param = JsonUtil.parseBean(po.getOperateJson(), SalaryArchiveItemSaveParam.class);
try {
getSalaryArchiveItemWrapper(user).saveSalaryItem4Workflow(param);
} catch (Exception e) {
requestInfo.getRequestManager().setMessage(e.getMessage());
log.error("万德隆调薪定薪触发action 单个调薪异常 requestId:{} poId:{} msg:{}", requestInfo.getRequestid(),po.getId(), e.getMessage());
return FAILURE_AND_CONTINUE;
}
} else if (po.getOperateType().equals(WdlArchiveWorkflowEnum.BATCH_EDIT.getValue())) {
List<SalaryArchiveItemBatchSaveParam> param = JsonUtil.parseList(po.getOperateJson(), SalaryArchiveItemBatchSaveParam.class);
try {
getSalaryArchiveItemWrapper(user).batchAdjustSalaryItem4Workflow(param);
} catch (Exception e) {
requestInfo.getRequestManager().setMessage(e.getMessage());
log.error("万德隆调薪定薪触发action 批量调薪异常 requestId:{} poId:{} msg:{}", requestInfo.getRequestid(),po.getId(), e.getMessage());
return FAILURE_AND_CONTINUE;
}
} else if (po.getOperateType().equals(WdlArchiveWorkflowEnum.SINGLE_INIT.getValue())) {
SalaryArchiveItemSaveParam param = JsonUtil.parseBean(po.getOperateJson(), SalaryArchiveItemSaveParam.class);
try {
getSalaryArchiveItemWrapper(user).initSalaryItem4Workflow(param);
} catch (Exception e) {
requestInfo.getRequestManager().setMessage(e.getMessage());
log.error("万德隆调薪定薪触发action 单个定薪异常 requestId:{} poId:{} msg:{}", requestInfo.getRequestid(),po.getId(), e.getMessage());
return FAILURE_AND_CONTINUE;
}
} else if (po.getOperateType().equals(WdlArchiveWorkflowEnum.BATCH_INIT.getValue())) {
List<SalaryArchiveItemBatchSaveParam> param = JsonUtil.parseList(po.getOperateJson(), SalaryArchiveItemBatchSaveParam.class);
try {
getSalaryArchiveItemWrapper(user).batchInitSalaryItem4Workflow(param);
} catch (Exception e) {
requestInfo.getRequestManager().setMessage(e.getMessage());
log.error("万德隆调薪定薪触发action 批量定薪异常 requestId:{} poId:{} msg:{}", requestInfo.getRequestid(),po.getId(), e.getMessage());
return FAILURE_AND_CONTINUE;
}
}
// 更新执行状态
getWdlArchiveWorkflowMapper().updateExeType(po.getId(), NumberUtils.INTEGER_ONE, SalaryDateUtil.getFormatLocalDateTime(new Date()));
} catch (Exception e) {
log.error("万德隆调薪定薪触发action 异常", e);
requestInfo.getRequestManager().setMessage(e.getMessage());
return FAILURE_AND_CONTINUE;
}
return SUCCESS;
}
}

View File

@ -35,7 +35,7 @@ public class WdlGzjgDTO {
private String gwzj;
// 工资水平
private Integer gzsp;
// private Integer gzsp;
// 明细表默认
private String mxbmr;

View File

@ -6,8 +6,6 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @author Harryxzy
* @ClassName SalaryArchiveItemBatchSaveParam
@ -19,6 +17,8 @@ import java.util.Date;
@NoArgsConstructor
@AllArgsConstructor
public class SalaryArchiveItemBatchSaveParam {
private String requestId;
private String taxAgentName;
private String employeeId;

View File

@ -30,6 +30,8 @@ import java.util.Set;
//薪资项目调整保存参数")
public class SalaryArchiveItemSaveParam {
private String requestId;
// 主键id
private Long salaryArchiveItemId;

View File

@ -0,0 +1,33 @@
package com.engine.salary.entity.salaryarchive.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
/**
* @author Harryxzy
* @ClassName WdlArchiveWorkflowPO
* @date 2025/07/09 15:13
* @description
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WdlArchiveWorkflowPO {
private String createTime;
private Integer deleteType;
private Integer exeType;
private Long id;
private String operateJson;
private Integer operateType;
private String requestid;
private String updateTime;
//主键id集合
private Collection<Long> ids;
}

View File

@ -0,0 +1,47 @@
package com.engine.salary.enums.salaryarchive;
import com.engine.salary.enums.BaseEnum;
import java.util.Objects;
public enum WdlArchiveWorkflowEnum implements BaseEnum<Integer> {
SINGLE_INIT(Integer.valueOf("1"), "单个定薪", 0),
BATCH_INIT(Integer.valueOf("2"), "批量定薪", 0),
SINGLE_EDIT(Integer.valueOf("3"), "单个调薪", 0),
BATCH_EDIT(Integer.valueOf("4"), "批量调薪", 0);
private Integer value;
private String defaultLabel;
private int labelId;
WdlArchiveWorkflowEnum(Integer value, String defaultLabel, int labelId) {
this.value = value;
this.defaultLabel = defaultLabel;
this.labelId = labelId;
}
public Integer getValue() {
return value;
}
public String getDefaultLabel() {
return defaultLabel;
}
public Integer getLabelId() {
return labelId;
}
public static WdlArchiveWorkflowEnum parseByValue(Integer value) {
for (WdlArchiveWorkflowEnum wdlArchiveWorkflowEnum : WdlArchiveWorkflowEnum.values()) {
if (Objects.equals(wdlArchiveWorkflowEnum.getValue(), value)) {
return wdlArchiveWorkflowEnum;
}
}
return null;
}
}

View File

@ -0,0 +1,75 @@
package com.engine.salary.mapper.archive;
import com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Harryxzy
* @ClassName WdlArchiveWorkflowMapper
* @date 2025/07/09 15:14
* @description
*/
public interface WdlArchiveWorkflowMapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<WdlArchiveWorkflowPO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<WdlArchiveWorkflowPO> listSome(WdlArchiveWorkflowPO wdlArchiveWorkflow);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
WdlArchiveWorkflowPO getById(Long id);
/**
* 新增忽略null字段
*
* @param wdlArchiveWorkflow 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(WdlArchiveWorkflowPO wdlArchiveWorkflow);
/**
* 修改修改所有字段
*
* @param wdlArchiveWorkflow 修改的记录
* @return 返回影响行数
*/
int update(WdlArchiveWorkflowPO wdlArchiveWorkflow);
/**
* 修改忽略null字段
*
* @param wdlArchiveWorkflow 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(WdlArchiveWorkflowPO wdlArchiveWorkflow);
/**
* 删除记录
*
* @param wdlArchiveWorkflow 待删除的记录
* @return 返回影响行数
*/
int delete(WdlArchiveWorkflowPO wdlArchiveWorkflow);
void deleteByRequestId(@Param("requestId") String requestId, @Param("updateTime")String updateTime);
WdlArchiveWorkflowPO getByRequstId(@Param("requestId") String requestid);
void updateExeType(@Param("id") Long id, @Param("execType")Integer execType, @Param("now")String now);
}

View File

@ -0,0 +1,214 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.archive.WdlArchiveWorkflowMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO">
<result column="create_time" property="createTime" />
<result column="delete_type" property="deleteType" />
<result column="exe_type" property="exeType" />
<result column="id" property="id" />
<result column="operate_json" property="operateJson" />
<result column="operate_type" property="operateType" />
<result column="requestid" property="requestid" />
<result column="update_time" property="updateTime" />
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t.create_time
, t.delete_type
, t.exe_type
, t.id
, t.operate_json
, t.operate_type
, t.requestid
, t.update_time
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns" />
FROM hrsa_wdl_archive_workflow t
WHERE delete_type = 0
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns" />
FROM hrsa_wdl_archive_workflow t
WHERE id = #{id} AND delete_type = 0
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO">
SELECT
<include refid="baseColumns" />
FROM hrsa_wdl_archive_workflow t
WHERE delete_type = 0
<if test="createTime != null">
AND create_time = #{createTime}
</if>
<if test="deleteType != null">
AND delete_type = #{deleteType}
</if>
<if test="exeType != null">
AND exe_type = #{exeType}
</if>
<if test="id != null">
AND id = #{id}
</if>
<if test="operateJson != null">
AND operate_json = #{operateJson}
</if>
<if test="operateType != null">
AND operate_type = #{operateType}
</if>
<if test="requestid != null">
AND requestid = #{requestid}
</if>
<if test="updateTime != null">
AND update_time = #{updateTime}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<select id="getByRequstId" resultType="com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO">
SELECT
<include refid="baseColumns" />
FROM hrsa_wdl_archive_workflow t
WHERE delete_type = 0
AND requestid = #{requestId}
ORDER BY id DESC
LIMIT 1
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO">
INSERT INTO hrsa_wdl_archive_workflow
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="createTime != null">
create_time,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="exeType != null">
exe_type,
</if>
<if test="id != null">
id,
</if>
<if test="operateJson != null">
operate_json,
</if>
<if test="operateType != null">
operate_type,
</if>
<if test="requestid != null">
requestid,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="createTime != null" >
#{createTime},
</if>
<if test="deleteType != null" >
#{deleteType},
</if>
<if test="exeType != null" >
#{exeType},
</if>
<if test="id != null" >
#{id},
</if>
<if test="operateJson != null" >
#{operateJson},
</if>
<if test="operateType != null" >
#{operateType},
</if>
<if test="requestid != null" >
#{requestid},
</if>
<if test="updateTime != null" >
#{updateTime},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO">
UPDATE hrsa_wdl_archive_workflow
<set>
create_time=#{createTime},
delete_type=#{deleteType},
exe_type=#{exeType},
operate_json=#{operateJson},
operate_type=#{operateType},
requestid=#{requestid},
update_time=#{updateTime},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO">
UPDATE hrsa_wdl_archive_workflow
<set>
<if test="createTime != null" >
create_time=#{createTime},
</if>
<if test="deleteType != null" >
delete_type=#{deleteType},
</if>
<if test="exeType != null" >
exe_type=#{exeType},
</if>
<if test="operateJson != null" >
operate_json=#{operateJson},
</if>
<if test="operateType != null" >
operate_type=#{operateType},
</if>
<if test="requestid != null" >
requestid=#{requestid},
</if>
<if test="updateTime != null" >
update_time=#{updateTime},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<update id="updateExeType">
UPDATE hrsa_wdl_archive_workflow
SET exe_type=#{execType}, update_time=#{now}
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 根据主键删除记录 -->
<delete id="delete" parameterType="com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO">
UPDATE hrsa_wdl_archive_workflow
SET delete_type=1
WHERE id = #{id} AND delete_type = 0
</delete>
<delete id="deleteByRequestId">
UPDATE hrsa_wdl_archive_workflow
SET delete_type=1,update_time=#{updateTime}
WHERE requestid = #{requestId} AND delete_type = 0
</delete>
</mapper>

View File

@ -1329,7 +1329,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
columns.add(new WeaTableColumnGroup("150", "办公地点", "bgdd", "bgdd"));
columns.add(new WeaTableColumnGroup("150", "岗位名称", "gwmc", "gwmc"));
columns.add(new WeaTableColumnGroup("150", "岗位职级", "gwzj", "gwzj"));
columns.add(new WeaTableColumnGroup("150", "工资水平", "gzsp", "gzsp"));
// columns.add(new WeaTableColumnGroup("150", "工资水平", "gzsp", "gzsp"));
for (Long itemId : salaryItemIds) {
String itemName = itemNameMap.getOrDefault(itemId, "");
columns.add(new WeaTableColumnGroup("150", itemName, itemId.toString(), itemId.toString()));
@ -1377,7 +1377,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
singleValueMap.put("bgdd" ,locationValueMap.getOrDefault(dto.getBgdd(), ""));
singleValueMap.put("gwmc" ,positionMap.getOrDefault(dto.getGwmc(), ""));
singleValueMap.put("gwzj" ,gwzjMap.getOrDefault(dto.getGwzj(), ""));
singleValueMap.put("gzsp" ,dto.getGzsp());
// singleValueMap.put("gzsp" ,dto.getGzsp());
List<WdlGzjgDtPO> detailList = dto.getDetailList();
Map<String, Integer> detailJeMap = SalaryEntityUtil.convert2Map(detailList, WdlGzjgDtPO::getXzxm, WdlGzjgDtPO::getJe);
for (SalaryItemPO item : salaryItemList) {
@ -1407,7 +1407,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
wdlGzjgDTO.setBgdd(SalaryEntityUtil.string2Integer(rs.getString("bgdd")));
wdlGzjgDTO.setGwmc(SalaryEntityUtil.string2Integer(rs.getString("gwmc")));
wdlGzjgDTO.setGwzj(rs.getString("gwzj"));
wdlGzjgDTO.setGzsp(SalaryEntityUtil.string2Integer(rs.getString("gzsp")));
// wdlGzjgDTO.setGzsp(SalaryEntityUtil.string2Integer(rs.getString("gzsp")));
wdlGzjgDTO.setMxbmr(rs.getString("mxbmr"));
wdlGzjgDTO.setGwzj1(rs.getString("gwzj1"));
resultList.add(wdlGzjgDTO);
@ -1485,8 +1485,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
for (WdlGzjgDTO mainData : needInsertList) {
int newId = ModeDataIdUpdate.getInstance().getModeDataNewIdByUUID("uf_bzgzjgb", bzgzjgModeId, user.getUID(), 0, "", "");
mainData.setId(newId);
String sql = "update uf_bzgzjgb set lb=?,bgdd=?,gwmc=?,gwzj=?,gzsp=? where id =" + newId;
rs.executeUpdate(sql, Arrays.asList(mainData.getLb(), mainData.getBgdd(), mainData.getGwmc(), mainData.getGwzj(), mainData.getGzsp()));
String sql = "update uf_bzgzjgb set lb=?,bgdd=?,gwmc=?,gwzj=? where id =" + newId;
rs.executeUpdate(sql, Arrays.asList(mainData.getLb(), mainData.getBgdd(), mainData.getGwmc(), mainData.getGwzj()));
List<WdlGzjgDtPO> detailList = mainData.getDetailList();
StringBuilder sb = new StringBuilder();
@ -1640,18 +1640,20 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
mainData.setGwmc(positionValue.intValue());
}
}
} else if (StringUtils.equals("工资水平", dataKey) ) {
if (StringUtils.isNotBlank(dataValue)) {
if (NumberUtils.isCreatable(dataValue)) {
mainData.setGzsp(SalaryEntityUtil.string2Integer(dataValue));
} else {
isError = true;
Map<String, String> errorMessageMap = Maps.newHashMap();
errorMessageMap.put("message", row + "工资水平非数值");
excelComments.add(errorMessageMap);
}
}
} else if (StringUtils.equals("岗位职级", dataKey) ) {
}
// else if (StringUtils.equals("工资水平", dataKey) ) {
// if (StringUtils.isNotBlank(dataValue)) {
// if (NumberUtils.isCreatable(dataValue)) {
// mainData.setGzsp(SalaryEntityUtil.string2Integer(dataValue));
// } else {
// isError = true;
// Map<String, String> errorMessageMap = Maps.newHashMap();
// errorMessageMap.put("message", row + "工资水平非数值");
// excelComments.add(errorMessageMap);
// }
// }
// }
else if (StringUtils.equals("岗位职级", dataKey) ) {
if (StringUtils.isNotBlank(dataValue)) {
Integer gwzjValue = gwzjValueMap.get(dataValue);
if (gwzjValue == null) {
@ -1714,7 +1716,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
lsh++;
}
}
rs.execute("select id,lb,bgdd,gwmc,gwzj,gzsp,mxbmr,gwzj1 from uf_bzgzjgb");
rs.execute("select id,lb,bgdd,gwmc,gwzj,mxbmr,gwzj1 from uf_bzgzjgb");
List<WdlGzjgDTO> mainList = new ArrayList<>();
@ -1726,7 +1728,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
wdlGzjgDTO.setBgdd(StringUtils.isBlank(rs.getString("bgdd")) ? null : rs.getInt("bgdd"));
wdlGzjgDTO.setGwmc(StringUtils.isBlank(rs.getString("gwmc")) ? null : rs.getInt("gwmc"));
wdlGzjgDTO.setGwzj(rs.getString("gwzj"));
wdlGzjgDTO.setGzsp(StringUtils.isBlank(rs.getString("gzsp")) ? null : rs.getInt("gzsp"));
// wdlGzjgDTO.setGzsp(StringUtils.isBlank(rs.getString("gzsp")) ? null : rs.getInt("gzsp"));
wdlGzjgDTO.setMxbmr(rs.getString("mxbmr"));
wdlGzjgDTO.setGwzj1(rs.getString("gwzj1"));
wdlGzjgDTO.setLsbb(lsbb);
@ -1756,7 +1758,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
List<List<WdlGzjgDTO>> partition = Lists.partition(mainList, 500);
partition.forEach(part -> {
StringBuilder sb = new StringBuilder();
sb.append("insert into uf_bzgzjgbls(formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,id,lb,bgdd,gwmc,gwzj,gzsp,lsbb) values ");
sb.append("insert into uf_bzgzjgbls(formmodeid,modedatacreater,modedatacreatertype,modedatacreatedate,modedatacreatetime,id,lb,bgdd,gwmc,gwzj,lsbb) values ");
for (WdlGzjgDTO data : part) {
sb.append("(")
.append(modeId).append(",1,0,").append(currDate).append(",").append(currTime).append(",")
@ -1764,8 +1766,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
.append(data.getLb()).append(",")
.append(data.getBgdd()).append(",")
.append(data.getGwmc()).append(",'")
.append(data.getGwzj()).append("',")
.append(data.getGzsp()).append(",'")
.append(data.getGwzj()).append("','")
// .append(data.getGzsp()).append(",'")
// .append(data.getMxbmr()).append("','")
// .append(data.getGwzj1()).append("','")
.append(data.getLsbb()).append("'),");

View File

@ -548,7 +548,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
// 构建导入需要的数据
SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(SalaryArchiveImportHandleParam.builder().isProcess(true).isWdlWorkflow(param.getIsWdlWorkflow()).listType(param.getListType()).importType(param.getImportType()).description(param.getDescription()).build());
SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(SalaryArchiveImportHandleParam.builder().isProcess(true).isWdlWorkflow(param.getIsWdlWorkflow() == null ? false : param.getIsWdlWorkflow()).listType(param.getListType()).importType(param.getImportType()).description(param.getDescription()).build());
importHandleParam.setKeepStatus(param.getKeepStatus());
int total = 0;
@ -630,7 +630,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
}
// 4.数据入库处理
if (param.getIsWdlWorkflow()) {
if (param.getIsWdlWorkflow() != null && param.getIsWdlWorkflow()) {
if (CollectionUtils.isEmpty(excelComments)) {
handleImportData(importHandleParam);
}
@ -699,7 +699,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
runStatusList = Arrays.asList(SalaryArchiveStatusEnum.FIXED.getValue(), SalaryArchiveStatusEnum.SUSPEND.getValue());
}
if (param.isWdlWorkflow()) {
if (CollectionUtils.isNotEmpty(runStatusList) && param.isWdlWorkflow()) {
List<String> tempRunStatusList = new ArrayList<>();
tempRunStatusList.addAll(runStatusList);
tempRunStatusList.add(SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue());

View File

@ -6,6 +6,8 @@ import com.engine.salary.entity.salaryarchive.param.*;
import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum;
import com.engine.salary.enums.salaryarchive.WdlArchiveWorkflowEnum;
import com.engine.salary.util.JsonUtil;
import com.engine.salary.util.ResponseResult;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryI18nUtil;
@ -15,6 +17,7 @@ import com.engine.salary.wrapper.SalaryArchiveTaxAgentWrapper;
import com.engine.salary.wrapper.SalaryArchiveWrapper;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@ -709,6 +712,18 @@ public class SalaryArchiveController {
// ----------------------------------------------万德隆调薪定薪流程---------------------------------------------------
/**
* 调薪单个人
*/
@GET
@Path("/testWdlSalaryArchiveTriggerAction")
@Produces(MediaType.APPLICATION_JSON)
public String testWdlSalaryArchiveTriggerAction(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "requestid") String requestId) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<String, String>(user).run(getSalaryArchiveItemWrapper(user)::testWdlSalaryArchiveTriggerAction, requestId);
}
/**
* 调薪单个人
*/
@ -717,7 +732,14 @@ public class SalaryArchiveController {
@Produces(MediaType.APPLICATION_JSON)
public String saveSalaryItem4Workflow(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveItemSaveParam saveParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<SalaryArchiveItemSaveParam, String>(user).run(getSalaryArchiveItemWrapper(user)::saveSalaryItem4Workflow, saveParam);
// 参数存至数据库待action触发
String jsonString = JsonUtil.toJsonString(saveParam);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("requestId", saveParam.getRequestId());
paramMap.put("jsonString", jsonString);
paramMap.put("operateType", WdlArchiveWorkflowEnum.SINGLE_EDIT);
return new ResponseResult<Map<String, Object>, String>(user).run(getSalaryArchiveItemWrapper(user)::saveWdlWorkflowParam, paramMap);
// return new ResponseResult<SalaryArchiveItemSaveParam, String>(user).run(getSalaryArchiveItemWrapper(user)::saveSalaryItem4Workflow, saveParam);
}
/**
@ -728,7 +750,16 @@ public class SalaryArchiveController {
@Produces(MediaType.APPLICATION_JSON)
public String batchAdjustSalaryItem4Workflow(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List<SalaryArchiveItemBatchSaveParam> saveParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<List<SalaryArchiveItemBatchSaveParam>, String>(user).run(getSalaryArchiveItemWrapper(user)::batchAdjustSalaryItem4Workflow, saveParam);
if (CollectionUtils.isEmpty(saveParam)) {
return "";
}
String jsonString = JsonUtil.toJsonString(saveParam);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("requestId", saveParam.get(0).getRequestId());
paramMap.put("jsonString", jsonString);
paramMap.put("operateType", WdlArchiveWorkflowEnum.BATCH_EDIT);
return new ResponseResult<Map<String, Object>, String>(user).run(getSalaryArchiveItemWrapper(user)::saveWdlWorkflowParam, paramMap);
// return new ResponseResult<List<SalaryArchiveItemBatchSaveParam>, String>(user).run(getSalaryArchiveItemWrapper(user)::batchAdjustSalaryItem4Workflow, saveParam);
}
/**
@ -739,7 +770,14 @@ public class SalaryArchiveController {
@Produces(MediaType.APPLICATION_JSON)
public String initSalaryItem4Workflow(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveItemSaveParam saveParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<SalaryArchiveItemSaveParam, String>(user).run(getSalaryArchiveItemWrapper(user)::initSalaryItem4Workflow, saveParam);
String jsonString = JsonUtil.toJsonString(saveParam);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("requestId", saveParam.getRequestId());
paramMap.put("jsonString", jsonString);
paramMap.put("operateType", WdlArchiveWorkflowEnum.SINGLE_INIT);
return new ResponseResult<Map<String, Object>, String>(user).run(getSalaryArchiveItemWrapper(user)::saveWdlWorkflowParam, paramMap);
// return new ResponseResult<SalaryArchiveItemSaveParam, String>(user).run(getSalaryArchiveItemWrapper(user)::initSalaryItem4Workflow, saveParam);
}
/**
@ -750,7 +788,17 @@ public class SalaryArchiveController {
@Produces(MediaType.APPLICATION_JSON)
public String batchInitSalaryItem4Workflow(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List<SalaryArchiveItemBatchSaveParam> saveParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<List<SalaryArchiveItemBatchSaveParam>, String>(user).run(getSalaryArchiveItemWrapper(user)::batchInitSalaryItem4Workflow, saveParam);
if (CollectionUtils.isEmpty(saveParam)) {
return "";
}
String jsonString = JsonUtil.toJsonString(saveParam);
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("requestId", saveParam.get(0).getRequestId());
paramMap.put("jsonString", jsonString);
paramMap.put("operateType", WdlArchiveWorkflowEnum.BATCH_INIT);
return new ResponseResult<Map<String, Object>, String>(user).run(getSalaryArchiveItemWrapper(user)::saveWdlWorkflowParam, paramMap);
// return new ResponseResult<List<SalaryArchiveItemBatchSaveParam>, String>(user).run(getSalaryArchiveItemWrapper(user)::batchInitSalaryItem4Workflow, saveParam);
}

View File

@ -3,7 +3,6 @@ package com.engine.salary.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.hrmelog.entity.dto.LoggerContext;
import com.engine.salary.action.CheckInitSalaryAction;
import com.engine.salary.config.SalaryElogConfig;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemFormDTO;
@ -13,8 +12,8 @@ import com.engine.salary.entity.salaryarchive.dto.SingleSalaryItemAdjustRecordLi
import com.engine.salary.entity.salaryarchive.param.*;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
import com.engine.salary.entity.salaryarchive.po.WdlArchiveWorkflowPO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.taxagent.param.TaxAgentQueryParam;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.UserStatusEnum;
@ -22,13 +21,17 @@ import com.engine.salary.enums.auth.AuthFilterTypeEnum;
import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum;
import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum;
import com.engine.salary.enums.salaryarchive.WdlArchiveWorkflowEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.archive.SalaryArchiveMapper;
import com.engine.salary.mapper.archive.WdlArchiveWorkflowMapper;
import com.engine.salary.service.*;
import com.engine.salary.service.impl.*;
import com.engine.salary.util.JsonUtil;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.IdGenerator;
import com.engine.salary.util.db.MapperProxyFactory;
import com.engine.salary.util.page.PageInfo;
import com.engine.salary.util.page.SalaryPageUtil;
@ -41,9 +44,8 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.BeanUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.soa.workflow.request.Property;
import weaver.wechat.util.Utils;
import java.util.*;
import java.util.stream.Collectors;
@ -87,6 +89,10 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt
return MapperProxyFactory.getProxy(SalaryArchiveMapper.class);
}
private WdlArchiveWorkflowMapper getWdlArchiveWorkflowMapper() {
return MapperProxyFactory.getProxy(WdlArchiveWorkflowMapper.class);
}
/**
* 构建薪资项目基础信息表单
@ -709,4 +715,96 @@ public class SalaryArchiveItemWrapper extends Service implements SalaryArchiveIt
}
}
}
public String saveWdlWorkflowParam(Map<String, Object> paramMap) {
String requestId = (String) paramMap.get("requestId");
String jsonString = (String) paramMap.get("jsonString");
WdlArchiveWorkflowEnum operateType = (WdlArchiveWorkflowEnum) paramMap.get("operateType");
if (operateType == null || StringUtils.isBlank(requestId) ) {
throw new SalaryRunTimeException("参数错误");
}
// 删除同requestId下的数据
getWdlArchiveWorkflowMapper().deleteByRequestId(requestId, SalaryDateUtil.getFormatLocalDateTime(new Date()));
// 插入新数据
String now = SalaryDateUtil.getFormatLocalDateTime(new Date());
WdlArchiveWorkflowPO build = WdlArchiveWorkflowPO.builder()
.id(IdGenerator.generate())
.requestid(requestId)
.operateType(operateType.getValue())
.operateJson(Utils.null2String(jsonString))
.createTime(now)
.updateTime(now)
.exeType(0)
.deleteType(0)
.build();
getWdlArchiveWorkflowMapper().insertIgnoreNull(build);
return "";
}
public String testWdlSalaryArchiveTriggerAction(String requestid) {
try {
WdlArchiveWorkflowPO po = getWdlArchiveWorkflowMapper().getByRequstId(requestid);
BaseBean baseBean = new BaseBean();
if (po == null) {
baseBean.writeLog("万德隆调薪定薪触发action未找到需要执行的任务 requestId:" + requestid);
return "SUCCESS";
}
if (po.getExeType() != null && po.getExeType().equals(NumberUtils.INTEGER_ONE)) {
baseBean.writeLog("万德隆调薪定薪触发action未找到待执行的任务 requestId:" + requestid + po.getId());
return "SUCCESS";
}
if (po.getOperateType() == null) {
baseBean.writeLog("万德隆调薪定薪触发action操作类型为null requestId:" + requestid );
return "SUCCESS";
}
if (po.getOperateType().equals(WdlArchiveWorkflowEnum.SINGLE_EDIT.getValue())) {
SalaryArchiveItemSaveParam param = JsonUtil.parseBean(po.getOperateJson(), SalaryArchiveItemSaveParam.class);
try {
saveSalaryItem4Workflow(param);
} catch (Exception e) {
// requestInfo.getRequestManager().setMessage(e.getMessage());
// log.error("万德隆调薪定薪触发action 单个调薪异常 requestId:{} poId:{} msg:{}", requestInfo.getRequestid(),po.getId(), e.getMessage());
return e.getMessage();
}
} else if (po.getOperateType().equals(WdlArchiveWorkflowEnum.BATCH_EDIT.getValue())) {
List<SalaryArchiveItemBatchSaveParam> param = JsonUtil.parseList(po.getOperateJson(), SalaryArchiveItemBatchSaveParam.class);
try {
batchAdjustSalaryItem4Workflow(param);
} catch (Exception e) {
// requestInfo.getRequestManager().setMessage(e.getMessage());
// log.error("万德隆调薪定薪触发action 批量调薪异常 requestId:{} poId:{} msg:{}", requestInfo.getRequestid(),po.getId(), e.getMessage());
return e.getMessage();
}
} else if (po.getOperateType().equals(WdlArchiveWorkflowEnum.SINGLE_INIT.getValue())) {
SalaryArchiveItemSaveParam param = JsonUtil.parseBean(po.getOperateJson(), SalaryArchiveItemSaveParam.class);
try {
initSalaryItem4Workflow(param);
} catch (Exception e) {
// requestInfo.getRequestManager().setMessage(e.getMessage());
// log.error("万德隆调薪定薪触发action 单个定薪异常 requestId:{} poId:{} msg:{}", requestInfo.getRequestid(),po.getId(), e.getMessage());
return e.getMessage();
}
} else if (po.getOperateType().equals(WdlArchiveWorkflowEnum.BATCH_INIT.getValue())) {
List<SalaryArchiveItemBatchSaveParam> param = JsonUtil.parseList(po.getOperateJson(), SalaryArchiveItemBatchSaveParam.class);
try {
batchInitSalaryItem4Workflow(param);
} catch (Exception e) {
// requestInfo.getRequestManager().setMessage(e.getMessage());
// log.error("万德隆调薪定薪触发action 批量定薪异常 requestId:{} poId:{} msg:{}", requestInfo.getRequestid(),po.getId(), e.getMessage());
return e.getMessage();
}
}
// 更新执行状态
getWdlArchiveWorkflowMapper().updateExeType(po.getId(), NumberUtils.INTEGER_ONE, SalaryDateUtil.getFormatLocalDateTime(new Date()));
} catch (Exception e) {
// log.error("万德隆调薪定薪触发action 异常", e);
// requestInfo.getRequestManager().setMessage(e.getMessage());
return e.getMessage();
}
return "SUCCESS";
}
}