diff --git a/src/com/customization/salary/CustomSalarySend.java b/src/com/customization/salary/CustomSalarySend.java index 4570f5d9c..d9ec73ad7 100644 --- a/src/com/customization/salary/CustomSalarySend.java +++ b/src/com/customization/salary/CustomSalarySend.java @@ -13,7 +13,7 @@ import java.util.Map; @ServiceDynamicProxy(target = SalarySendWrapper.class, desc = "薪资核算") public class CustomSalarySend extends AbstractServiceProxy implements SalarySendWrapperProxy { @Override - public Map grant(SalarySendGrantParam queryParam) { + public void grant(SalarySendGrantParam queryParam) { BaseBean baseBean = new BaseBean(); baseBean.writeLog("拦截工资单发送方法..."); @@ -22,7 +22,6 @@ public class CustomSalarySend extends AbstractServiceProxy implements SalarySend Object o = executeMethod(queryParam); //todo do some thing - return (Map)o; } @Override diff --git a/src/com/engine/salary/service/ProgressService.java b/src/com/engine/salary/service/ProgressService.java index 5a741c918..210ec62dd 100644 --- a/src/com/engine/salary/service/ProgressService.java +++ b/src/com/engine/salary/service/ProgressService.java @@ -55,6 +55,14 @@ public interface ProgressService { */ void finish(String cacheKey, boolean checkStatus); + /** + * 完成 + * @param cacheKey + * @param checkStatus + * @param message + */ + void finish(String cacheKey, boolean checkStatus,String message); + /** * 更新进度条 * diff --git a/src/com/engine/salary/service/impl/ProgressServiceImpl.java b/src/com/engine/salary/service/impl/ProgressServiceImpl.java index 80f1e8d5a..f855c50be 100644 --- a/src/com/engine/salary/service/impl/ProgressServiceImpl.java +++ b/src/com/engine/salary/service/impl/ProgressServiceImpl.java @@ -92,6 +92,23 @@ public class ProgressServiceImpl extends Service implements ProgressService { } } + @Override + public void finish(String cacheKey, boolean checkStatus, String message) { + String resultStr = (String) Util_DataCache.getObjVal(cacheKey); + if (StringUtils.isNotEmpty(resultStr)) { + ProgressDTO progressDTO = JsonUtil.parseObject(resultStr, ProgressDTO.class); + if (progressDTO == null || !progressDTO.isStatus()) { + return; + } + progressDTO.setTitle("操作完成"); + progressDTO.setCalculatedQuantity(progressDTO.getTotalQuantity()); + progressDTO.setProgress(BigDecimal.ONE); + progressDTO.setCheckStatus(checkStatus); + progressDTO.setMessage(message); + Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(progressDTO)); + } + } + @Override public void updateProgress(String cacheKey, BigDecimal progress, boolean checkStatus) { String resultStr = (String) Util_DataCache.getObjVal(cacheKey); diff --git a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java index 2bcd09c4d..a21cfad46 100644 --- a/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryBillServiceImpl.java @@ -6,7 +6,9 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.SalarySendBiz; import com.engine.salary.biz.SalarySendInfoBiz; +import com.engine.salary.cache.SalaryCacheKey; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.progress.ProgressDTO; import com.engine.salary.entity.salaryBill.bo.SalaryBillBO; import com.engine.salary.entity.salaryBill.bo.SalaryTemplateBO; import com.engine.salary.entity.salaryBill.dto.SalaryBillSendDTO; @@ -43,15 +45,19 @@ import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; import java.lang.reflect.InvocationTargetException; +import java.math.BigDecimal; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** - * @Description: 工资单发放 - * @Author: wangxiangzhong - * @Date: 2021-12-11 11:28 - */ + * 工资单发放 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ @Slf4j public class SalaryBillServiceImpl extends Service implements SalaryBillService { @@ -109,7 +115,9 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService private SalarySobItemService salarySobItemService; -// private SalaryBillProgressService salaryBillProgressService; + private ProgressService getProgressService(User user) { + return ServiceUtil.getService(ProgressServiceImpl.class, user); + } /** * 工资单发放 start @@ -140,15 +148,21 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(204428, "请完善补发工资单模板设置")); } // 2.检查是否正在发送中 -// SalaryBillProgressDTO salaryBillProgress = salaryBillProgressService.getProgress(SalaryCacheKey.SALARY_GRANT_PROGRESS, "" + param.getSalarySendId()); -// if (Objects.nonNull(salaryBillProgress) && salaryBillProgress.isStatus() -// && Optional.ofNullable(salaryBillProgress.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) { -// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(136104, "有其他人员正在发送中,请等待其他人员发送结束后再操作")); -// } + ProgressDTO salaryBillProgress = getProgressService(user).getProgress(SalaryCacheKey.SALARY_GRANT_PROGRESS + "_" + param.getSalarySendId()); + if (Objects.nonNull(salaryBillProgress) && salaryBillProgress.isStatus() + && Optional.ofNullable(salaryBillProgress.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(136104, "有其他人员正在发送中,请等待其他人员发送结束后再操作")); + } // 初始化进度 -// SalaryBillProgressDTO initProgress = salaryBillProgressService.buildInitProgress(SalaryI18nUtil.getI18nLabel(136097, "发送中"), 136097, NumberUtils.INTEGER_ONE, NumberUtils.INTEGER_ZERO, BigDecimal.ZERO); -// salaryBillProgressService.initProgress(SalaryCacheKey.SALARY_GRANT_PROGRESS, "" + salarySend.getId(), initProgress); -// String tenantName = TenantContext.getCurrentTenant().getTenantName(); + ProgressDTO initProgress = ProgressDTO.builder() + .title(SalaryI18nUtil.getI18nLabel(136097, "发送中")) + .totalQuantity(NumberUtils.INTEGER_ZERO) + .calculatedQuantity(NumberUtils.INTEGER_ZERO) + .progress(BigDecimal.ZERO) + .status(true) + .message("") + .build(); + getProgressService(user).initProgress(SalaryCacheKey.SALARY_GRANT_PROGRESS + "_" + salarySend.getId(), initProgress); List ids = param.getIds(); @@ -209,14 +223,13 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService + SalaryI18nUtil.getI18nLabel(134807, "成功条数") + "[" + (successCount) + "], " + SalaryI18nUtil.getI18nLabel(134808, "失败条数") + "[" + (total - successCount) + "]"; // 发送进度完成 -// salaryBillProgressService.finish(SalaryCacheKey.SALARY_GRANT_PROGRESS, "" + salarySend.getId(), messsage, true); + getProgressService(user).finish(SalaryCacheKey.SALARY_GRANT_PROGRESS + "_" + salarySend.getId(), true, messsage); // log.info("工资单发送组装耗时:{}毫秒;工资单发送消息中心耗时:{}毫秒;工资单数据更改总耗时:{}毫秒;工资单发送总耗时:{}毫秒;工资单云桥图片地址:{}", l3 - l2, l4 - l3, l5 - l4, System.currentTimeMillis() - l, // salaryBillSendParam == null ? "" : salaryBillSendParam.getPicUrl()); } catch (Exception e) { log.info("发送出错:{}", e.getMessage(), e); // 发送进度失败 - -// salaryBillProgressService.fail(SalaryCacheKey.SALARY_GRANT_PROGRESS, "" + salarySend.getId(), SalaryI18nUtil.getI18nLabel(136118, "工资单发送出错") + ": " + e.getMessage()); + getProgressService(user).fail(SalaryCacheKey.SALARY_GRANT_PROGRESS + "_" + salarySend.getId(), SalaryI18nUtil.getI18nLabel(136118, "工资单发送出错") + ": " + e.getMessage()); } finally { } } @@ -348,9 +361,14 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService List employeeIds = list.stream().map(SalarySendInfoListDTO::getEmployeeId).collect(Collectors.toList()); // 初始化进度 -// SalaryBillProgressDTO initProgress = salaryBillProgressService -// .buildInitProgress("发送中", 136097, employeeIds.size() * 2 + 1, NumberUtils.INTEGER_ZERO, BigDecimal.ZERO); -// salaryBillProgressService.initProgress(SalaryCacheKey.SALARY_GRANT_PROGRESS, "" + salarySend.getId(), initProgress); + ProgressDTO initProgress = ProgressDTO.builder() + .title("发送中") + .totalQuantity(employeeIds.size() * 2 + 1) + .calculatedQuantity(NumberUtils.INTEGER_ZERO) + .progress(BigDecimal.ZERO) + .message("") + .build(); + getProgressService(user).initProgress(SalaryCacheKey.SALARY_GRANT_PROGRESS + "_" + salarySend.getId(), initProgress); // 3.组装详情数据 // 获取薪资项目数据 List salaryAcctEmployees = Lists.newArrayList(); @@ -363,7 +381,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService List> partition = Lists.partition(employeeIds, partSize); for (List part : partition) { // 更新进度 -// salaryBillProgressService.getAndAddCalculatedQty(SalaryCacheKey.SALARY_GRANT_PROGRESS, "" + salarySend.getId(), part.size()); + getProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.SALARY_GRANT_PROGRESS + "_" + salarySend.getId(), part.size()); /** 注意只有邮件才需要加密的核算数据 */ if (isEnableEmail) { List acctEmployees = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIdsAndEmployeeIds(Collections.singletonList(salarySend.getSalaryAccountingId()), part); @@ -411,7 +429,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService enableSendList.forEach(e -> { if (sendChannels.contains(MessageChannelEnum.MSG)) { - SalaryBillBO.sendMsg(salaryBillSendParam, Long.valueOf(e.get("id").toString()) , Long.valueOf( e.get("employeeId").toString())); + SalaryBillBO.sendMsg(salaryBillSendParam, Long.valueOf(e.get("id").toString()), Long.valueOf(e.get("employeeId").toString())); } if (sendChannels.contains(MessageChannelEnum.EMAIL)) { @@ -426,12 +444,12 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService .id(Long.valueOf(e.get("id").toString())) .build()); // 更新发送进度 -// index.addAndGet(1); -// part.addAndGet(1); -// if (index.get() % 100 == 0 || index.get() >= total) { -// salaryBillProgressService.getAndAddCalculatedQty(SalaryCacheKey.SALARY_GRANT_PROGRESS, "" + salaryBillSendParam.getSalarySend().getId(), part.get()); -// part.set(0); -// } + index.addAndGet(1); + part.addAndGet(1); + if (index.get() % 100 == 0 || index.get() >= total) { + getProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.SALARY_GRANT_PROGRESS + "_" + salaryBillSendParam.getSalarySend().getId(), part.get()); + part.set(0); + } }); // 批量修改发送消息id if (CollectionUtils.isNotEmpty(sendInfoUpdateList)) { @@ -531,12 +549,15 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService * @param salaryTemplate */ private void grantSendInfo(List ids, SalarySendPO salarySend, SalaryTemplatePO salaryTemplate) { + List> partition = Lists.partition(ids, 500); Date sendTime = new Date(); SalarySendInfoPO po = new SalarySendInfoPO(); po.setSendStatus(SalarySendStatusEnum.ALREADYSEND.getValue()); po.setSendTime(sendTime); po.setSalaryTemplate(JsonUtil.toJsonString(salaryTemplate)); - salarySendInfoMapper.updateGrantWithdraw(po, salarySend.getId(), Arrays.asList(SalarySendStatusEnum.UNSEND.getValue(), SalarySendStatusEnum.WITHDRAW.getValue()), ids); + partition.forEach(idsp -> { + salarySendInfoMapper.updateGrantWithdraw(po, salarySend.getId(), Arrays.asList(SalarySendStatusEnum.UNSEND.getValue(), SalarySendStatusEnum.WITHDRAW.getValue()), idsp); + }); } // /** @@ -599,7 +620,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService //// } // // // 检查是否正在撤回中 -// SalaryBillProgressDTO salaryBillProgress = salaryBillProgressService +// SalaryBillProgressDTO salaryBillProgress = getProgressService(user) // .getProgress(SalaryCacheKey.SALARY_WITHDRAW_PROGRESS, "" + salarySend.getId()); // if (Objects.nonNull(salaryBillProgress) && salaryBillProgress.isStatus() // && Optional.ofNullable(salaryBillProgress.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) { @@ -607,9 +628,9 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService // } // // // 初始化进度 -// SalaryBillProgressDTO initProgress = salaryBillProgressService +// SalaryBillProgressDTO initProgress = getProgressService(user) // .buildInitProgress("撤回中", 136106, NumberUtils.INTEGER_ONE, NumberUtils.INTEGER_ZERO, BigDecimal.ZERO); -// salaryBillProgressService.initProgress(SalaryCacheKey.SALARY_WITHDRAW_PROGRESS, "" + salarySend.getId(), initProgress); +// getProgressService(user).initProgress(SalaryCacheKey.SALARY_WITHDRAW_PROGRESS, "" + salarySend.getId(), initProgress); // // List ids = isRange ? getSalarySendRangeService(user).getSendInfoIdsBySalarySendIdAndOperateType(salarySend.getId(), rangeIds, SalarySendOperateTypeEnum.WITHDRAW) : param.getIds(); // // 异步执行撤回 @@ -670,9 +691,9 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService // } // // // 初始化进度 -// SalaryBillProgressDTO initProgress = salaryBillProgressService +// SalaryBillProgressDTO initProgress = getProgressService(user) // .buildInitProgress("撤回中", 136106, enableWithdrawList.size() * 2 + 1, enableWithdrawList.size(), new BigDecimal("0.5")); -// salaryBillProgressService.initProgress(SalaryCacheKey.SALARY_WITHDRAW_PROGRESS, "" + salarySend.getId(), initProgress); +// getProgressService(user).initProgress(SalaryCacheKey.SALARY_WITHDRAW_PROGRESS, "" + salarySend.getId(), initProgress); // // // 1.撤回消息:先修改数据再发消息,避免出错后无法撤回 // String text = SalaryI18nUtil.getI18nLabel(184533, "此工资单已被撤回,如有问题,请联系管理员"); @@ -697,7 +718,7 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService // index.addAndGet(1); // part.addAndGet(1); // if (index.get() % 100 == 0 || index.get() >= total) { -// salaryBillProgressService.getAndAddCalculatedQty(SalaryCacheKey.SALARY_WITHDRAW_PROGRESS, "" + salarySend.getId(), part.get()); +// getProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.SALARY_WITHDRAW_PROGRESS, "" + salarySend.getId(), part.get()); // part.set(0); // } // }); @@ -721,11 +742,11 @@ public class SalaryBillServiceImpl extends Service implements SalaryBillService // + SalaryI18nUtil.getI18nLabel(134807, "成功条数") + "[" + (successCount) + "], " // + SalaryI18nUtil.getI18nLabel(134808, "失败条数") + "[" + (total - successCount) + "]"; // // 撤回进度完成 -// salaryBillProgressService.finish(SalaryCacheKey.SALARY_WITHDRAW_PROGRESS, "" + salarySend.getId(), messsage, true); +// getProgressService(user).finish(SalaryCacheKey.SALARY_WITHDRAW_PROGRESS, "" + salarySend.getId(), messsage, true); // } catch (Exception e) { // log.info("撤回出错:{}", e.getMessage(), e); // // 发送进度失败 -// salaryBillProgressService +// getProgressService(user) // .fail(SalaryCacheKey.SALARY_WITHDRAW_PROGRESS, "" + salarySend.getId(), SalaryI18nUtil.getI18nLabel(136142, "工资单撤回出错") + ": " + e.getMessage()); // } finally { // DSTenantKeyThreadVar.tenantKey.remove(); diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 9d6672c10..a4e6d24fe 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -910,91 +910,86 @@ public class SalarySendServiceImpl extends Service implements SalarySendService @Override public Map grant(SalarySendGrantParam param) { - getSalaryBillService(user).grant(param); + if (param.getSalarySendId() == null) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100327, "工资单发放Id必传")); + } -// if (param.getSalarySendId() == null) { -// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100327, "工资单发放Id必传")); -// } -// -// Long salarySendId = param.getSalarySendId(); -// Collection ids = param.getIds(); -// -// if (param.getSalarySendRangeIds() != null) { -// //如果传了范围id,则使用范围id发放 -// ids = getSalarySendRangeService(user) -// .getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.GRANT); -// if (ids.isEmpty()) {// 由于查出来是空的,会导致全部发放,在此进行拦截 -// throw new SalaryRunTimeException("工资发放范围内没有匹配员工"); -// } -// } -// -// SalarySendPO salarySend = mapper.getById(salarySendId); -// if (salarySend == null) { -// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100512, "工资单发放不存在")); -// } -// // 已经冻结不能操作 -// if (Objects.equals(salarySend.getSendStatus(), NumberUtils.INTEGER_ONE)) { -// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "工资单已冻结")); -// } -// // 获取默认模板 -// List salaryTemplates = getSalaryTemplateService(user).getDefaultTemplates(Collections.singletonList(salarySend.getSalarySobId())); -// if (CollectionUtils.isEmpty(salaryTemplates)) { -// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100518, "没有默认模板,无法发送")); -// } -// SalaryTemplatePO templatePO = salaryTemplates.get(0); -// Date sendTime = new Date(); -// // 获取可发送的列表 -// List> enableSendList = getEnableSendList(salarySend, ids, templatePO); -// // 1.发放 -// -// SalarySendInfoPO po = new SalarySendInfoPO(); -// po.setSendStatus(SalarySendStatusEnum.ALREADYSEND.getValue()); -// po.setSendTime(sendTime); -// po.setSalaryTemplate(JsonUtil.toJsonString(templatePO)); -// salarySendInfoMapper.updateGrantWithdraw(po, salarySendId, Arrays.asList(SalarySendStatusEnum.UNSEND.getValue(), SalarySendStatusEnum.WITHDRAW.getValue()), ids); -// -// -// List list = salarySendInfoMapper.listSome(SalarySendInfoPO.builder().salarySendId(salarySendId).build()); -// //需要发送工资的人 -// -// List sendList = list.stream().filter(e -> e.getSendStatus().equals(SalarySendStatusEnum.ALREADYSEND.getValue())).collect(Collectors.toList()); -// int sendNum = sendList.size(); -// int sendTotal = list.size(); -// SalarySendPO salarySendNew = new SalarySendPO(); -// try { -// BeanUtils.copyProperties(salarySendNew, salarySend); -// } catch (IllegalAccessException e) { -// e.printStackTrace(); -// } catch (InvocationTargetException e) { -// e.printStackTrace(); -// } -// salarySendNew.setSendNum(sendNum); -// salarySendNew.setSendTotal(sendTotal); -// salarySendNew.setLastSendTime(sendTime); -// -// mapper.updateById(salarySendNew); -// -// List needSendList = Lists.newArrayList(); -// enableSendList.forEach(map -> { -// sendList.forEach(item -> { -// if (item.getId() == Long.valueOf(map.get("id").toString()).longValue()) { -// needSendList.add(item); -// } -// }); -// }); -// -// // 发送消息 -// param.setTemplate(templatePO); -// sendMessage(true, needSendList, param, salarySend); -// -// -// -// Map map = new HashMap<>(2); -// map.put("sendNum", sendNum); -// map.put("sendTotal", sendTotal); -// -// return map; - return null; + Long salarySendId = param.getSalarySendId(); + Collection ids = param.getIds(); + + if (param.getSalarySendRangeIds() != null) { + //如果传了范围id,则使用范围id发放 + ids = getSalarySendRangeService(user) + .getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.GRANT); + if (ids.isEmpty()) {// 由于查出来是空的,会导致全部发放,在此进行拦截 + throw new SalaryRunTimeException("工资发放范围内没有匹配员工"); + } + } + + SalarySendPO salarySend = mapper.getById(salarySendId); + if (salarySend == null) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100512, "工资单发放不存在")); + } + // 已经冻结不能操作 + if (Objects.equals(salarySend.getSendStatus(), NumberUtils.INTEGER_ONE)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "工资单已冻结")); + } + // 获取默认模板 + List salaryTemplates = getSalaryTemplateService(user).getDefaultTemplates(Collections.singletonList(salarySend.getSalarySobId())); + if (CollectionUtils.isEmpty(salaryTemplates)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100518, "没有默认模板,无法发送")); + } + SalaryTemplatePO templatePO = salaryTemplates.get(0); + Date sendTime = new Date(); + // 获取可发送的列表 + List> enableSendList = getEnableSendList(salarySend, ids, templatePO); + // 1.发放 + + SalarySendInfoPO po = new SalarySendInfoPO(); + po.setSendStatus(SalarySendStatusEnum.ALREADYSEND.getValue()); + po.setSendTime(sendTime); + po.setSalaryTemplate(JsonUtil.toJsonString(templatePO)); + salarySendInfoMapper.updateGrantWithdraw(po, salarySendId, Arrays.asList(SalarySendStatusEnum.UNSEND.getValue(), SalarySendStatusEnum.WITHDRAW.getValue()), ids); + + + List list = salarySendInfoMapper.listSome(SalarySendInfoPO.builder().salarySendId(salarySendId).build()); + //需要发送工资的人 + + List sendList = list.stream().filter(e -> e.getSendStatus().equals(SalarySendStatusEnum.ALREADYSEND.getValue())).collect(Collectors.toList()); + int sendNum = sendList.size(); + int sendTotal = list.size(); + SalarySendPO salarySendNew = new SalarySendPO(); + try { + BeanUtils.copyProperties(salarySendNew, salarySend); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } + salarySendNew.setSendNum(sendNum); + salarySendNew.setSendTotal(sendTotal); + salarySendNew.setLastSendTime(sendTime); + + mapper.updateById(salarySendNew); + + List needSendList = Lists.newArrayList(); + enableSendList.forEach(map -> { + sendList.forEach(item -> { + if (item.getId() == Long.valueOf(map.get("id").toString()).longValue()) { + needSendList.add(item); + } + }); + }); + + // 发送消息 + param.setTemplate(templatePO); + sendMessage(true, needSendList, param, salarySend); + + Map map = new HashMap<>(2); + map.put("sendNum", sendNum); + map.put("sendTotal", sendTotal); + + return map; } /** diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index 15b9311b0..33678fb49 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -535,9 +535,9 @@ public class SalaryBillController { log.info("salary recipient: {} em_auth_userid: {}", recipient, em_auth_userid); if (StringUtils.isNotBlank(recipient) && NumberUtils.isCreatable(recipient)) { user = new User(Integer.parseInt(recipient)); - } else if(StringUtils.isNotBlank(em_auth_userid) && NumberUtils.isCreatable(em_auth_userid)){ + } else if (StringUtils.isNotBlank(em_auth_userid) && NumberUtils.isCreatable(em_auth_userid)) { user = new User(Integer.parseInt(em_auth_userid)); - }else { + } else { user = HrmUserVarify.getUser(request, response); } return new ResponseResult>(user).run(getSalarySendWrapper(user)::mySalaryBill, salaryInfoId); diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index 2f4a79838..19c3869e5 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -46,10 +46,13 @@ import java.util.*; import java.util.stream.Collectors; /** - * @Description: 工资单发放 - * @Author: wangxiangzhong - * @Date: 2022/3/16 13:57 - */ + * 工资单发放 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy { private TaxAgentService getTaxAgentService(User user) { return ServiceUtil.getService(TaxAgentServiceImpl.class, user); @@ -59,6 +62,10 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy return ServiceUtil.getService(SalarySendServiceImpl.class, user); } + private SalaryBillService getSalaryBillService(User user) { + return ServiceUtil.getService(SalaryBillServiceImpl.class, user); + } + private SalaryTemplateService getSalaryTemplateService(User user) { return ServiceUtil.getService(SalaryTemplateServiceImpl.class, user); } @@ -348,8 +355,8 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy * @param queryParam * @return */ - public Map grant(SalarySendGrantParam queryParam) { - return getSalarySendService(user).grant(queryParam); + public void grant(SalarySendGrantParam queryParam) { + getSalaryBillService(user).grant(queryParam); } /** diff --git a/src/com/engine/salary/wrapper/proxy/SalarySendWrapperProxy.java b/src/com/engine/salary/wrapper/proxy/SalarySendWrapperProxy.java index df063f4cd..b7bf6016c 100644 --- a/src/com/engine/salary/wrapper/proxy/SalarySendWrapperProxy.java +++ b/src/com/engine/salary/wrapper/proxy/SalarySendWrapperProxy.java @@ -21,7 +21,7 @@ public interface SalarySendWrapperProxy { * @param queryParam * @return */ - Map grant(SalarySendGrantParam queryParam); + void grant(SalarySendGrantParam queryParam); /** * 工资单撤回