From a34a5b9aa69892fd1cbbd3959b223cb59f92bdb3 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 16 Oct 2023 16:59:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=B9=89=E5=8A=A1=E4=BA=BA?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E8=8C=83=E5=9B=B4=E5=88=B0=E8=B4=A6=E5=A5=97?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/SalarySobService.java | 2 + .../service/impl/SalarySobServiceImpl.java | 2 +- .../timer/SyncTaxAgentEmp2SobEmpJob.java | 79 +++++++++++++++++++ 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/com/engine/salary/timer/SyncTaxAgentEmp2SobEmpJob.java diff --git a/src/com/engine/salary/service/SalarySobService.java b/src/com/engine/salary/service/SalarySobService.java index dd39fc5ee..bef31a87e 100644 --- a/src/com/engine/salary/service/SalarySobService.java +++ b/src/com/engine/salary/service/SalarySobService.java @@ -99,6 +99,8 @@ public interface SalarySobService { */ Long save(SalarySobBasicSaveParam saveParam); + void saveDefaultEmployeeRange(SalarySobPO salarySobPO); + /** * 编辑 * diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index 0a851f5db..c221f724f 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -393,7 +393,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { * @author Harryxzy * @date 2022/10/9 15:30 */ - private void saveDefaultEmployeeRange(SalarySobPO salarySobPO) { + public void saveDefaultEmployeeRange(SalarySobPO salarySobPO) { // 获取人员范围列表 TaxAgentRangeQueryParam queryParam = TaxAgentRangeQueryParam.builder().taxAgentId(salarySobPO.getTaxAgentId()).build(); queryParam.setCurrent(1); diff --git a/src/com/engine/salary/timer/SyncTaxAgentEmp2SobEmpJob.java b/src/com/engine/salary/timer/SyncTaxAgentEmp2SobEmpJob.java new file mode 100644 index 000000000..5df6d7b5e --- /dev/null +++ b/src/com/engine/salary/timer/SyncTaxAgentEmp2SobEmpJob.java @@ -0,0 +1,79 @@ +package com.engine.salary.timer; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.biz.SalarySobRangeBiz; +import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.salarysob.po.SalarySobRangePO; +import com.engine.salary.service.SalarySobRangeService; +import com.engine.salary.service.SalarySobService; +import com.engine.salary.service.impl.SalarySobRangeServiceImpl; +import com.engine.salary.service.impl.SalarySobServiceImpl; +import dm.jdbc.util.IdGenerator; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.schedule.BaseCronJob; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 自动同步个税扣缴以为人人员范围至,账套人员范围 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Slf4j +public class SyncTaxAgentEmp2SobEmpJob extends BaseCronJob { + + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private SalarySobRangeService getSalarySobRangeService(User user) { + return ServiceUtil.getService(SalarySobRangeServiceImpl.class, user); + } + + private String salarySobIds; + + + + @Override + public void execute() { + User user = new User(); + user.setUid(1); + user.setLoginid("sysadmin"); + List salarySobPOS; + if (StringUtils.isNotEmpty(salarySobIds)) { + // 只同步指定的账套 + List salarySobIdList = Arrays.asList(StringUtils.split(salarySobIds, ",")).stream().map(Long::valueOf).collect(Collectors.toList()); + salarySobPOS = getSalarySobService(user).listByIds(salarySobIdList); + } else { + salarySobPOS = getSalarySobService(user).listAll(); + } + BaseBean baseBean = new BaseBean(); + SalarySobRangeBiz salarySobRangeBiz = new SalarySobRangeBiz(); + for (SalarySobPO po : salarySobPOS) { + List salarySobRangePOS = new ArrayList<>(); + try { + baseBean.writeLog("开始同步人员范围至账套账套:{}",po.getId()); + // 保存前先删除 + salarySobRangePOS = salarySobRangeBiz.listSome(SalarySobRangePO.builder().salarySobId(po.getId()).build()); + getSalarySobRangeService(user).deleteBySalarySobIds(Collections.singletonList(po.getId())); + getSalarySobService(user).saveDefaultEmployeeRange(po); + } catch (Exception e) { + baseBean.writeLog("同步人员范围至账套账套出错:" + e.getMessage()); + salarySobRangePOS.stream().forEach(p -> p.setId(IdGenerator.generate())); + salarySobRangeBiz.batchInsert(salarySobRangePOS); + } + } + } + + +}