weaver-hrm-salary/resource/com/customization/salary/CustomSalarySendWrapper.java

67 lines
2.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.customization.salary;
import com.engine.common.util.ServiceUtil;
import com.engine.core.cfg.annotation.ServiceDynamicProxy;
import com.engine.core.cfg.annotation.ServiceMethodDynamicProxy;
import com.engine.core.impl.aop.AbstractServiceProxy;
import com.engine.salary.entity.salaryBill.param.SalarySendGrantParam;
import com.engine.salary.entity.salaryBill.param.SalarySendWithdrawParam;
import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.service.SalaryBillService;
import com.engine.salary.service.SalarySendRangeService;
import com.engine.salary.service.impl.SalaryBillServiceImpl;
import com.engine.salary.service.impl.SalarySendRangeServiceImpl;
import com.engine.salary.wrapper.SalarySendWrapper;
import com.engine.salary.wrapper.proxy.SalarySendWrapperProxy;
import weaver.hrm.User;
import java.util.List;
import java.util.Map;
@ServiceDynamicProxy(target = SalarySendWrapper.class, desc = "工资单发送")
public class CustomSalarySendWrapper extends AbstractServiceProxy implements SalarySendWrapperProxy {
private SalaryBillService getSalaryBillService(User user) {
return ServiceUtil.getService(SalaryBillServiceImpl.class, user);
}
private SalarySendRangeService getSalarySendRangeService(User user) {
return ServiceUtil.getService(SalarySendRangeServiceImpl.class, user);
}
@Override
@ServiceMethodDynamicProxy(desc = "拦截工资单发送方法")
public Map<String, Object> grant(SalarySendGrantParam queryParam) {
Long salarySendId = queryParam.getSalarySendId();
List<Long> ids = queryParam.getIds();
if (queryParam.getSalarySendRangeIds() != null) {
//如果传了范围id则使用范围id发放
ids = getSalarySendRangeService(new User())
.getSendInfoIdsBySendId(queryParam.getSalarySendId(), queryParam.getSalarySendRangeIds(), SalarySendGrantTypeEnum.GRANT);
if (ids.isEmpty()) {// 由于查出来是空的,会导致全部发放,在此进行拦截
throw new SalaryRunTimeException("工资发放范围内没有匹配员工");
}
}
List<Map<String, Object>> sendInfoList = getSalaryBillService(new User()).getSendInfoList(salarySendId, ids);
//解析sendInfoList拼接短信内容
System.out.println("发送短信");
//todo do some thing
Map<String, Object> result = (Map<String, Object>) executeMethod(queryParam);
//todo do some thing
return result;
}
@Override
public Map<String, Object> withdraw(SalarySendWithdrawParam queryParam) {
return null;
}
}