parent
e73ed7142f
commit
6de22b142d
|
|
@ -2,3 +2,8 @@ ALTER TABLE hrsa_salary_item MODIFY COLUMN shared_type int(0) NULL ;
|
|||
ALTER TABLE hrsa_salary_sob_item MODIFY COLUMN tenant_key varchar(10) null ;
|
||||
|
||||
|
||||
ALTER TABLE hrsa_salary_item ALTER COLUMN [shared_type] int NULL
|
||||
GO
|
||||
|
||||
ALTER TABLE hrsa_salary_sob_item ALTER COLUMN [tenant_key] varchar NULL
|
||||
GO
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.engine.salary.entity.salaryBill.param;
|
||||
|
||||
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
|
|
@ -21,10 +22,10 @@ import java.util.List;
|
|||
//@ApiModel("工资单发放参数")
|
||||
public class SalarySendGrantParam {
|
||||
|
||||
// @ApiModelProperty("主键id")
|
||||
// 主键id
|
||||
private Collection<Long> ids;
|
||||
|
||||
// @ApiModelProperty("工资单发放Id")
|
||||
// 工资单发放Id
|
||||
private Long salarySendId;
|
||||
|
||||
/**
|
||||
|
|
@ -32,6 +33,9 @@ public class SalarySendGrantParam {
|
|||
*/
|
||||
private List<Long> salarySendRangeIds;
|
||||
|
||||
//模板,发消息用
|
||||
private SalaryTemplatePO template;
|
||||
|
||||
public static String checkParam(SalarySendGrantParam param, Long employeeId, String tenantKey) {
|
||||
if (param.getSalarySendId() == null) {
|
||||
throw new SalaryRunTimeException("工资单发放Id必传");
|
||||
|
|
|
|||
|
|
@ -17,59 +17,51 @@ import java.util.Date;
|
|||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
//@TableName("hrsa_salary_send_info")
|
||||
//@ElogTransform(name = "工资单发放信息表")
|
||||
//工资单发放信息表")
|
||||
public class SalarySendInfoPO {
|
||||
|
||||
public Object get;
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
// @ElogTransform(name = "主键id")
|
||||
private Long id;
|
||||
|
||||
// @ElogTransform(name = "工资单发放id")
|
||||
// 工资单发放id
|
||||
private Long salarySendId;
|
||||
|
||||
/**
|
||||
* 薪资所属月
|
||||
*/
|
||||
// @ElogTransform(name = "薪资所属月")
|
||||
private Date salaryMonth;
|
||||
|
||||
/**
|
||||
* 薪资核算表的主键id
|
||||
*/
|
||||
// @ElogTransform(name = "薪资核算表的主键id")
|
||||
private Long salaryAcctRecordId;
|
||||
|
||||
/**
|
||||
* 人员信息表的主键id
|
||||
*/
|
||||
// @ElogTransform(name = "人员信息表的主键id")
|
||||
private Long employeeId;
|
||||
|
||||
/**
|
||||
* 人员信息表的主键id
|
||||
*/
|
||||
// @ElogTransform(name = "个税扣缴义务人表的主键id")
|
||||
private Long taxAgentId;
|
||||
|
||||
/**
|
||||
* 发送状态。0:未发送、1:已发送、2:已撤回
|
||||
*/
|
||||
// @ElogTransform(name = "发送状态。0:未发送、1:已发送、2:已撤回")
|
||||
private Integer sendStatus;
|
||||
|
||||
/**
|
||||
* 发送时间
|
||||
*/
|
||||
// @ElogTransform(name = "发送时间")
|
||||
private Date sendTime;
|
||||
|
||||
/**
|
||||
* 核算类型。0:正常,1:补发
|
||||
*/
|
||||
// @ElogTransform(name = "核算类型。0:正常,1:补发")
|
||||
private Integer salaryAcctType;
|
||||
|
||||
/**
|
||||
|
|
@ -80,30 +72,25 @@ public class SalarySendInfoPO {
|
|||
/**
|
||||
* 创建人
|
||||
*/
|
||||
// @ElogTransform(name = "创建人", ignore = true)
|
||||
private Long creator;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
// @ElogTransform(name = "创建时间", ignore = true)
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
// @ElogTransform(name = "更新时间", ignore = true)
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 是否已删除。0:未删除、1:已删除
|
||||
*/
|
||||
// @ElogTransform(name = "是否已删除。0:未删除、1:已删除", ignore = true)
|
||||
private Integer deleteType;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
// @ElogTransform(name = "租户key", ignore = true)
|
||||
private String tenantKey;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,86 +21,72 @@ public class SalarySendPO {
|
|||
/**
|
||||
* 主键id
|
||||
*/
|
||||
// @ElogTransform(name = "主键id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 薪资所属月
|
||||
*/
|
||||
// @ElogTransform(name = "薪资所属月")
|
||||
private Date salaryMonth;
|
||||
|
||||
/**
|
||||
* 薪资核算id
|
||||
*/
|
||||
// @ElogTransform(name = "薪资核算id")
|
||||
private Long salaryAccountingId;
|
||||
|
||||
/**
|
||||
* 薪资账套id
|
||||
*/
|
||||
// @ElogTransform(name = "薪资账套id")
|
||||
private Long salarySobId;
|
||||
|
||||
/**
|
||||
* 已发送数量
|
||||
*/
|
||||
// @ElogTransform(name = "已发送数量")
|
||||
private Integer sendNum;
|
||||
|
||||
/**
|
||||
* 发送总数
|
||||
*/
|
||||
// @ElogTransform(name = "发送总数")
|
||||
private Integer sendTotal;
|
||||
|
||||
/**
|
||||
* 最后发送时间
|
||||
*/
|
||||
// @ElogTransform(name = "最后发送时间")
|
||||
private Date lastSendTime;
|
||||
|
||||
|
||||
/**
|
||||
* 发放状态。0:未冻结、1:已冻结
|
||||
*/
|
||||
// @ElogTransform(name = "发放状态。0:未冻结、1:已冻结")
|
||||
private Integer sendStatus;
|
||||
|
||||
/**
|
||||
* 核算类型。0:正常,1:补发
|
||||
*/
|
||||
// @ElogTransform(name = "核算类型。0:正常,1:补发")
|
||||
private Integer salaryAcctType;
|
||||
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
// @ElogTransform(name = "创建人", ignore = true)
|
||||
private Long creator;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
// @ElogTransform(name = "创建时间", ignore = true)
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
// @ElogTransform(name = "更新时间", ignore = true)
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 是否已删除。0:未删除、1:已删除
|
||||
*/
|
||||
// @ElogTransform(name = "是否已删除。0:未删除、1:已删除", ignore = true)
|
||||
private Integer deleteType;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
// @ElogTransform(name = "租户key", ignore = true)
|
||||
private String tenantKey;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,139 +23,116 @@ public class SalaryTemplatePO {
|
|||
/**
|
||||
* 主键
|
||||
*/
|
||||
// @ElogTransform(name = "主键")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
// @ElogTransform(name = "模板名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 薪资账套表的主键id
|
||||
*/
|
||||
// @ElogTransform(name = "薪资账套表的主键id")
|
||||
private Long salarySobId;
|
||||
|
||||
/**
|
||||
* 使用类型。0:普通、1:默认
|
||||
*/
|
||||
// @ElogTransform(name = "使用类型。0:普通、1:默认")
|
||||
private Integer useType;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
// @ElogTransform(name = "备注")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 邮箱开启状态。0:关、1:开
|
||||
*/
|
||||
// @ElogTransform(name = "邮箱开启状态。0:关、1:开")
|
||||
private Integer emailStatus;
|
||||
|
||||
/**
|
||||
* 发送地址:公共邮箱账号id
|
||||
*/
|
||||
// @ElogTransform(name = "发送地址")
|
||||
private Long sendEmailId;
|
||||
|
||||
/**
|
||||
* 消息中心开启状态。0:关、1:开
|
||||
*/
|
||||
// @ElogTransform(name = "消息中心开启状态。0:关、1:开")
|
||||
private Integer msgStatus;
|
||||
|
||||
/**
|
||||
* 主题
|
||||
*/
|
||||
// @ElogTransform(name = "主题")
|
||||
private String theme;
|
||||
|
||||
/**
|
||||
* 背景图
|
||||
*/
|
||||
// @ElogTransform(name = "背景图")
|
||||
private String background;
|
||||
|
||||
/**
|
||||
* 文本内容
|
||||
*/
|
||||
// @ElogTransform(name = "文本内容")
|
||||
private String textContent;
|
||||
|
||||
/**
|
||||
* 文本内容显示位置。1:薪资项目前、2:薪资项目后
|
||||
*/
|
||||
// @ElogTransform(name = "文本内容显示位置。1:薪资项目前、2:薪资项目后")
|
||||
private Integer textContentPosition;
|
||||
|
||||
/**
|
||||
* 薪资项为空时不显示开启状态。0:关、1:开
|
||||
*/
|
||||
// @ElogTransform(name = "薪资项为空时不显示开启状态。0:关、1:开")
|
||||
private Integer salaryItemNullStatus;
|
||||
|
||||
/**
|
||||
* 薪资项为0时不显示开启状态。0:关、1:开
|
||||
*/
|
||||
// @ElogTransform(name = "薪资项为0时不显示开启状态。0:关、1:开")
|
||||
private Integer salaryItemZeroStatus;
|
||||
|
||||
/**
|
||||
* 薪资项目设置
|
||||
*/
|
||||
// @ElogTransform(name = "薪资项目设置")
|
||||
private String salaryItemSetting;
|
||||
|
||||
//=====================补发===================
|
||||
/**
|
||||
* 补发工资单模板名称
|
||||
*/
|
||||
// @ElogTransform(name = "补发工资单模板名称")
|
||||
private String replenishName;
|
||||
|
||||
/**
|
||||
* 补发工资单名单生成规则
|
||||
*/
|
||||
// @ElogTransform(name = "补发工资单名单生成规则")
|
||||
private String replenishRule;
|
||||
|
||||
/**
|
||||
* 补发薪资项目设置
|
||||
*/
|
||||
// @ElogTransform(name = "补发薪资项目设置")
|
||||
private String replenishSalaryItemSetting;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
// @ElogTransform(name = "创建时间", ignore = true)
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
// @ElogTransform(name = "更新时间", ignore = true)
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
// @ElogTransform(name = "创建人", ignore = true)
|
||||
private Long creator;
|
||||
|
||||
/**
|
||||
* 是否已删除。0:未删除、1:已删除
|
||||
*/
|
||||
// @ElogTransform(name = "是否已删除。0:未删除、1:已删除", ignore = true)
|
||||
private Integer deleteType;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
// @ElogTransform(name = "租户key", ignore = true)
|
||||
private String tenantKey;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ import java.util.Set;
|
|||
**/
|
||||
public interface SalarySendInfoMapper {
|
||||
|
||||
SalarySendInfoPO getById(@Param("id") Long id);
|
||||
|
||||
List<Long> listSalaryAccRecordIds(@Param("param") SalarySendDetailQueryParam param);
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -38,6 +38,14 @@
|
|||
, t.salary_acct_type
|
||||
</sql>
|
||||
|
||||
<select id="getById" resultType="com.engine.salary.entity.salaryBill.po.SalarySendInfoPO">
|
||||
SELECT
|
||||
<include refid="baseColumns"/>
|
||||
FROM hrsa_salary_send_info
|
||||
WHERE delete_type = 0
|
||||
AND id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="batchInsert">
|
||||
INSERT INTO hrsa_salary_send_info (
|
||||
id,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.engine.salary.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.api.browser.bean.SearchConditionGroup;
|
||||
import com.api.browser.bean.SearchConditionItem;
|
||||
import com.api.browser.util.ConditionFactory;
|
||||
|
|
@ -59,7 +58,6 @@ import weaver.general.Util;
|
|||
import weaver.hrm.User;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.*;
|
||||
import java.util.*;
|
||||
|
|
@ -771,14 +769,8 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction
|
|||
}
|
||||
|
||||
private String plus(String var0, String var1) {
|
||||
if (StrUtil.isEmpty(var0)) {
|
||||
var0 = "0";
|
||||
}
|
||||
if (StrUtil.isEmpty(var1)) {
|
||||
var1 = "0";
|
||||
}
|
||||
return new BigDecimal(var0)
|
||||
.add(new BigDecimal(var1))
|
||||
return SalaryEntityUtil.string2BigDecimalDefault0(var0)
|
||||
.add(SalaryEntityUtil.string2BigDecimalDefault0(var1))
|
||||
.toString();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
package com.engine.salary.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.api.formmode.mybatis.util.SqlProxyHandle;
|
||||
import com.cloudstore.dev.api.bean.MessageBean;
|
||||
import com.cloudstore.dev.api.bean.MessageType;
|
||||
import com.cloudstore.dev.api.service.ServiceMessageCustom;
|
||||
import com.cloudstore.dev.api.service.ServiceMessageCustomImpl;
|
||||
import com.cloudstore.dev.api.util.Util_Message;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
|
|
@ -61,8 +62,9 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.company.SubCompanyComInfo;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -627,9 +629,20 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
private String getBillTitle(String theme, Date salaryMonth, Long currentEmployeeId) {
|
||||
String yearI18n = SalaryI18nUtil.getI18nLabel(100325, "年");
|
||||
String monthI18n = SalaryI18nUtil.getI18nLabel(100326, "月");
|
||||
String companyName = "";
|
||||
if (currentEmployeeId != null) {
|
||||
ResourceComInfo resourceComInfo = null;
|
||||
SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo();
|
||||
try {
|
||||
resourceComInfo = new ResourceComInfo();
|
||||
subCompanyComInfo = new SubCompanyComInfo();
|
||||
} catch (Exception e) {
|
||||
log.error("资源异常", e);
|
||||
}
|
||||
companyName = subCompanyComInfo.getSubCompanyname(resourceComInfo.getSubCompanyID(currentEmployeeId + ""));
|
||||
}
|
||||
return theme
|
||||
// TODO 设置租户名称
|
||||
.replace("${companyName}", "")
|
||||
.replace("${companyName}", companyName)
|
||||
.replace("${salaryMonth}", new SimpleDateFormat("yyyy年MM月").format(salaryMonth));
|
||||
}
|
||||
|
||||
|
|
@ -821,25 +834,20 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
if (CollectionUtils.isEmpty(salaryTemplates)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100518, "没有默认模板,无法发送"));
|
||||
}
|
||||
SalaryTemplatePO templatePO = salaryTemplates.get(0);
|
||||
Date sendTime = new Date();
|
||||
// 获取可发送的列表
|
||||
List<Map<String, Object>> enableSendList = getEnableSendList(salarySend, ids, salaryTemplates.get(0));
|
||||
List<Map<String, Object>> enableSendList = getEnableSendList(salarySend, ids, templatePO);
|
||||
// 1.发放
|
||||
|
||||
SalarySendInfoPO po = new SalarySendInfoPO();
|
||||
po.setSendStatus(SalarySendStatusEnum.ALREADYSEND.getValue());
|
||||
po.setSendTime(sendTime);
|
||||
po.setSalaryTemplate(JsonUtil.toJsonString(salaryTemplates.get(0)));
|
||||
|
||||
po.setSalaryTemplate(JsonUtil.toJsonString(templatePO));
|
||||
salarySendInfoMapper.updateGrantWithdraw(po, salarySendId, Arrays.asList(SalarySendStatusEnum.UNSEND.getValue(), SalarySendStatusEnum.WITHDRAW.getValue()), ids);
|
||||
|
||||
|
||||
// 2.更新数量
|
||||
po = new SalarySendInfoPO();
|
||||
po.setDeleteType(0);
|
||||
po.setSalarySendId(salarySendId);
|
||||
|
||||
List<SalarySendInfoPO> list = salarySendInfoMapper.listSome(po);
|
||||
List<SalarySendInfoPO> list = salarySendInfoMapper.listSome(SalarySendInfoPO.builder().salarySendId(salarySendId).build());
|
||||
//需要发送工资的人
|
||||
|
||||
List<SalarySendInfoPO> sendList = list.stream().filter(e -> e.getSendStatus().equals(SalarySendStatusEnum.ALREADYSEND.getValue())).collect(Collectors.toList());
|
||||
|
|
@ -859,37 +867,6 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
|
||||
mapper.updateById(salarySendNew);
|
||||
|
||||
// List<SalarySobPO> salarySobs = new LambdaQueryChainWrapper<>(salarySobMapper)
|
||||
// .eq(SalarySobPO::getTenantKey, TenantContext.getCurrentTenantKey())
|
||||
// .eq(SalarySobPO::getDeleteType, 0)
|
||||
// .eq(SalarySobPO::getId, salarySend.getSalarySobId())
|
||||
// .list();
|
||||
|
||||
SalarySobPO salarySobPO = new SalarySobPO();
|
||||
salarySobPO.setDeleteType(0);
|
||||
salarySobPO.setId(salarySend.getSalarySobId());
|
||||
// List<SalarySobPO> salarySobs = salarySobMapper.listSome(salarySobPO);
|
||||
|
||||
// 记录日志
|
||||
// SalaryLoggerUtil.recordUpdateSingleLog(salarySendLoggerTemplate,
|
||||
// salarySend.getId(),
|
||||
// salarySend.getSalaryMonth() + "-" + (CollectionUtils.isNotEmpty(salarySobs) ? salarySobs.get(0).getName() : ""),
|
||||
// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 93215, "工资单发放"),
|
||||
// SalaryI18nUtil.getI18nLabel(currentTenantKey, currentEmployeeId, 93215, "工资单发放"),
|
||||
// salarySend,
|
||||
// salarySendNew);
|
||||
|
||||
// 3.异步发送消息:先修改数据再发消息,避免出错后无法撤回
|
||||
// TODO 异步发送消息
|
||||
// String tenantName = TenantContext.getCurrentTenant().getTenantName();
|
||||
// taskExecutor.execute(() -> {
|
||||
// try {
|
||||
// DSTenantKeyThreadVar.tenantKey.set(currentTenantKey);
|
||||
// sendMessage(salarySend, enableSendList, salaryTemplates.get(0), tenantName, currentEmployeeId, currentTenantKey);
|
||||
// } finally {
|
||||
// DSTenantKeyThreadVar.tenantKey.remove();
|
||||
// }
|
||||
// });
|
||||
List<SalarySendInfoPO> needSendList = Lists.newArrayList();
|
||||
enableSendList.forEach(map -> {
|
||||
sendList.forEach(item -> {
|
||||
|
|
@ -900,6 +877,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
});
|
||||
|
||||
// 发送消息
|
||||
param.setTemplate(templatePO);
|
||||
sendMessage(true, needSendList, param, salarySend);
|
||||
|
||||
Map<String, Object> map = new HashMap<>(2);
|
||||
|
|
@ -918,27 +896,18 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
* @param salarySend
|
||||
*/
|
||||
private void sendMessage(boolean sendFlag, List<SalarySendInfoPO> list, SalarySendGrantParam param, SalarySendPO salarySend) {
|
||||
Date salaryMonth = salarySend.getSalaryMonth();
|
||||
String month = DateUtil.format(salaryMonth, "yyyy-MM");
|
||||
new Thread() {
|
||||
public void run() {
|
||||
List<Long> collect = new ArrayList<>();
|
||||
List<SalarySendInfoPO> pos = list;
|
||||
if (CollectionUtils.isNotEmpty(param.getIds())) {
|
||||
collect = new ArrayList<>(param.getIds());
|
||||
} else {
|
||||
collect = list.stream().map(item -> item.getId()).collect(Collectors.toList());
|
||||
pos = list.stream().filter(f -> param.getIds().contains(f.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
collect.forEach(item -> {
|
||||
SalarySendInfoPO po = SalarySendInfoPO.builder().id(item).build();
|
||||
List<SalarySendInfoPO> salarySendInfoPOS = salarySendInfoMapper.listSome(po);
|
||||
if (CollectionUtils.isNotEmpty(salarySendInfoPOS)) {
|
||||
Long employeeId = salarySendInfoPOS.get(0).getEmployeeId();
|
||||
if (sendFlag) {
|
||||
sendPayRollEMMessage(item, employeeId, month);
|
||||
} else {
|
||||
withdrawPayrollEMMessage(item, employeeId);
|
||||
}
|
||||
pos.forEach(po -> {
|
||||
Long employeeId = po.getEmployeeId();
|
||||
if (sendFlag) {
|
||||
sendPayRollEMMessage(po, param.getTemplate(), employeeId);
|
||||
} else {
|
||||
withdrawPayrollEMMessage(po, employeeId);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -948,36 +917,57 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
/**
|
||||
* 发送Em消息
|
||||
*/
|
||||
private void sendPayRollEMMessage(Long id, Long employeeId, String month) {
|
||||
MessageType messageType = MessageType.newInstance(499); // 消息来源(见文档第四点补充 必填)
|
||||
private void sendPayRollEMMessage(SalarySendInfoPO po, SalaryTemplatePO template, Long employeeId) {
|
||||
Long id = po.getId();
|
||||
|
||||
String billTitle = getBillTitle(template.getTheme(), po.getSalaryMonth(), null);
|
||||
String background = template.getBackground();
|
||||
|
||||
Set<String> userIdList = new HashSet<>(); // 接收人id 必填
|
||||
userIdList.add(employeeId.toString());
|
||||
String title = month + " 工资单"; // 标题
|
||||
String title = billTitle; // 标题
|
||||
String context = "点击查看详情"; // 内容
|
||||
String linkUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?id=" + id; // PC端链接
|
||||
String linkMobileUrl = weaver.general.GCONST.getContextPath() + "/spa/hrmSalary/static/index.html#/main/hrmSalary/mobilepayroll?type=phone&id=" + id; // 移动端链接
|
||||
try {
|
||||
MessageBean messageBean = Util_Message.createMessage(messageType, userIdList, title, context, linkUrl, linkMobileUrl);
|
||||
messageBean.setCreater(user.getUID());// 创建人id
|
||||
messageBean.setBizState("0");// 需要修改消息为已处理等状态时传入,表示消息最初状态为待处理
|
||||
messageBean.setTargetId("499|" + id); //消息来源code +“|”+业务id需要修改消息为已处理等状态时传入
|
||||
Util_Message.store(messageBean);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
Map<String, Object> map = new HashMap();
|
||||
map.put("code", "499");
|
||||
map.put("title", title);
|
||||
map.put("context", context);
|
||||
map.put("linkUrl", linkUrl);
|
||||
map.put("linkMobileUrl", linkMobileUrl);
|
||||
map.put("bizState", "0"); //在消息需要修改状态时传入,表示消息初始的状态是待处理
|
||||
map.put("targetId", "499|" + id);// 消息来源code +“|”+业务id 消息需要打上已处理标记
|
||||
map.put("userIdList", userIdList); //接收人OA系统id 第一种形式 参数是userIdList
|
||||
map.put("creater", user.getUID()); //创建人OA系统id 第一种形式 参数是creater
|
||||
|
||||
Map extraMap = new HashMap<>();
|
||||
extraMap.put("linkurl", linkUrl);
|
||||
if (StringUtils.isNotBlank(background)) {
|
||||
extraMap.put("showimage", background);//图片地址
|
||||
} else {
|
||||
extraMap.put("showimage", "/hrm/hrm_e9/images/payroll.jpg?pictype=jpg");//图片地址
|
||||
}
|
||||
Map shareMap = new HashMap<>();
|
||||
shareMap.put("extra", extraMap);
|
||||
Map emParams = new HashMap<>();
|
||||
emParams.put("share", shareMap);
|
||||
|
||||
map.put("emParams", emParams);
|
||||
ServiceMessageCustom factory = new ServiceMessageCustomImpl();
|
||||
factory.sendCustomMessageSingle(JSON.toJSONString(map));
|
||||
}
|
||||
|
||||
/**
|
||||
* 撤回EM消息
|
||||
*
|
||||
* @param id
|
||||
* @param po
|
||||
*/
|
||||
private void withdrawPayrollEMMessage(Long id, Long employeeId) {
|
||||
private void withdrawPayrollEMMessage(SalarySendInfoPO po, Long employeeId) {
|
||||
try {
|
||||
MessageBean messageBean = Util_Message.createMessage();
|
||||
messageBean.setUserList(new HashSet<>());//接收人id
|
||||
messageBean.setUserId(employeeId.intValue());
|
||||
messageBean.setTargetId("499|" + id); //code + “|” + 业务id
|
||||
messageBean.setTargetId("499|" + po.getId()); //code + “|” + 业务id
|
||||
//messageBean.setMessageType(MessageType.newInstance(121));//消息来源code(传了代表code也做为删除时的条件,默认不传)
|
||||
Util_Message.delMessageTargetid(messageBean);
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue