From c3b71201a41799331b1e8f23da5ab003d8d17c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 3 Dec 2024 16:39:02 +0800 Subject: [PATCH 01/22] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/hrm/po/HrmSnapshotPO.java | 428 +++++ .../salary/mapper/hrm/HrmSnapshotMapper.java | 90 + .../salary/mapper/hrm/HrmSnapshotMapper.xml | 1616 +++++++++++++++++ .../engine/salary/timer/HrmSnapshotJob.java | 51 + 4 files changed, 2185 insertions(+) create mode 100644 src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java create mode 100644 src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java create mode 100644 src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml create mode 100644 src/com/engine/salary/timer/HrmSnapshotJob.java diff --git a/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java b/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java new file mode 100644 index 000000000..2dc410de5 --- /dev/null +++ b/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java @@ -0,0 +1,428 @@ +package com.engine.salary.entity.hrm.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Collection; +import java.util.Date; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class HrmSnapshotPO { + + @ElogTransform(name = "id") + private Long id; + + /** + * 快照时间 + */ + @ElogTransform(name = "快照时间") + private Date snapshotTime; + + + /** + * 人员id + */ + @ElogTransform(name = "人员id") + private Long employeeId; + + /** + * 姓名 + */ + @ElogTransform(name = "姓名") + private String lastname; + + + /** + * 工资帐号1 + */ + @ElogTransform(name = "工资帐号1") + private String accountid1; + + /** + * 工资账号户名 + */ + @ElogTransform(name = "工资账号户名") + private String accountname; + + /** + * 帐号类型 + */ + @ElogTransform(name = "帐号类型") + private Integer accounttype; + + /** + * 公积金帐号 + */ + @ElogTransform(name = "公积金帐号") + private String accumfundaccount; + + /** + * 助理 + */ + @ElogTransform(name = "助理") + private Integer assistantid; + + /** + * 工资银行1 + */ + @ElogTransform(name = "工资银行1") + private Integer bankid1; + + /** + * 所属主帐号 + */ + @ElogTransform(name = "所属主帐号") + private Integer belongto; + + /** + * 入团时间 + */ + @ElogTransform(name = "入团时间") + private String bememberdate; + + /** + * 入党时间 + */ + @ElogTransform(name = "入党时间") + private String bepartydate; + + /** + * 生日 + */ + @ElogTransform(name = "生日") + private String birthday; + + /** + * 出生地 + */ + @ElogTransform(name = "出生地") + private String birthplace; + + /** + * 身份证号码 + */ + @ElogTransform(name = "身份证号码") + private String certificatenum; + + /** + * 公司开始日期 + */ + @ElogTransform(name = "公司开始日期") + private String companystartdate; + + /** + * 公司年限 + */ + @ElogTransform(name = "公司年限") + private BigDecimal companyworkyear; + + /** + * 所属成本中心 + */ + @ElogTransform(name = "所属成本中心") + private Integer costcenterid; + + /** + * 国家id + */ + @ElogTransform(name = "国家id") + private Integer countryid; + + /** + * 学位 + */ + @ElogTransform(name = "学位") + private String degree; + + /** + * 所属部门 + */ + @ElogTransform(name = "所属部门") + private Integer departmentid; + + /** + * 部门名称 + */ + @ElogTransform(name = "部门名称") + private String departmentname; + + /** + * 学历 + */ + @ElogTransform(name = "学历") + private Integer educationlevel; + + /** + * 电子邮件 + */ + @ElogTransform(name = "电子邮件") + private String email; + + + /** + * 合同结束日期 + */ + @ElogTransform(name = "合同结束日期") + private String enddate; + + /** + * 分机 + */ + @ElogTransform(name = "分机") + private String extphone; + + /** + * 传真 + */ + @ElogTransform(name = "传真") + private String fax; + + /** + * 民族 + */ + @ElogTransform(name = "民族") + private String folk; + + /** + * 健康状况 + */ + @ElogTransform(name = "健康状况") + private String healthinfo; + + /** + * 家庭住址 + */ + @ElogTransform(name = "家庭住址") + private String homeaddress; + + + /** + * 是否为工会会员 + */ + @ElogTransform(name = "是否为工会会员") + private String islabouunion; + + /** + * 职责描述 + */ + @ElogTransform(name = "职责描述") + private String jobactivitydesc; + + /** + * 职称 + */ + @ElogTransform(name = "职称") + private Integer jobcall; + + /** + * 工作级别 + */ + @ElogTransform(name = "工作级别") + private Integer joblevel; + + /** + * 岗位 + */ + @ElogTransform(name = "岗位") + private Integer jobtitle; + + /** + * 岗位名称 + */ + @ElogTransform(name = "岗位名称") + private String jobtitlename; + + /** + * 最后登陆日期 + */ + @ElogTransform(name = "最后登陆日期") + private String lastlogindate; + + /** + * 工作地点 + */ + @ElogTransform(name = "工作地点") + private Integer locationid; + + /** + * 系统登陆帐号 + */ + @ElogTransform(name = "系统登陆帐号") + private String loginid; + + /** + * 经理 + */ + @ElogTransform(name = "经理") + private Integer managerid; + + /** + * 所有上级 + */ + @ElogTransform(name = "所有上级") + private String managerstr; + + /** + * 婚姻状况 + */ + @ElogTransform(name = "婚姻状况") + private String maritalstatus; + + /** + * 手机 + */ + @ElogTransform(name = "手机") + private String mobile; + + /** + * 其他电话 + */ + @ElogTransform(name = "其他电话") + private String mobilecall; + + /** + * 国籍 + */ + @ElogTransform(name = "国籍") + private Integer nationality; + + /** + * 籍贯 + */ + @ElogTransform(name = "籍贯") + private String nativeplace; + + /** + * 政治面貌 + */ + @ElogTransform(name = "政治面貌") + private String policy; + + /** + * 试用期结束日期 + */ + @ElogTransform(name = "试用期结束日期") + private String probationenddate; + + /** + * 户口 + */ + @ElogTransform(name = "户口") + private String regresidentplace; + + /** + * 居住地电话 + */ + @ElogTransform(name = "居住地电话") + private String residentphone; + + /** + * 居住地 + */ + @ElogTransform(name = "居住地") + private String residentplace; + + /** + * 居住地邮编 + */ + @ElogTransform(name = "居住地邮编") + private String residentpostcode; + + /** + * 用户类别 + */ + @ElogTransform(name = "用户类别") + private String resourcetype; + + /** + * 安全级别 + */ + @ElogTransform(name = "安全级别") + private Integer seclevel; + + /** + * 性别 + */ + @ElogTransform(name = "性别") + private String sex; + + + + /** + * 合同开始日期 + */ + @ElogTransform(name = "合同开始日期") + private String startdate; + + /** + * 0:试用
1:正式
2:临时
3:试用延期
4:解聘
5:离职
6:退休
7:无效 + */ + @ElogTransform(name = " 0:试用
1:正式
2:临时
3:试用延期
4:解聘
5:离职
6:退休
7:无效") + private Integer status; + + /** + * 所属分部1 + */ + @ElogTransform(name = "所属分部1") + private Integer subcompanyid1; + + /** + * 分部名称 + */ + @ElogTransform(name = "分部名称") + private String subcompanyname; + + /** + * 电话 + */ + @ElogTransform(name = "电话") + private String telephone; + + /** + * 暂住证号码 + */ + @ElogTransform(name = "暂住证号码") + private String tempresidentnumber; + + /** + * 用工性质 + */ + @ElogTransform(name = "用工性质") + private Integer usekind; + + /** + * 编号 + */ + @ElogTransform(name = "编号") + private String workcode; + + /** + * 办公室 + */ + @ElogTransform(name = "办公室") + private String workroom; + + /** + * 工作开始日期 + */ + @ElogTransform(name = "工作开始日期") + private String workstartdate; + + /** + * 工作年限 + */ + @ElogTransform(name = "工作年限") + private BigDecimal workyear; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java new file mode 100644 index 000000000..077e96d70 --- /dev/null +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java @@ -0,0 +1,90 @@ +package com.engine.salary.mapper.hrm; + +import com.engine.salary.entity.hrm.po.HrmSnapshotPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.Date; +import java.util.List; + +public interface HrmSnapshotMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(HrmSnapshotPO hrmSnapshot); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + HrmSnapshotPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param hrmSnapshot 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(HrmSnapshotPO hrmSnapshot); + + /** + * 批量插入 + * + * @param hrmSnapshot + */ + void batchInsert(@Param("collection") List hrmSnapshot); + + /** + * 修改,修改所有字段 + * + * @param hrmSnapshot 修改的记录 + * @return 返回影响行数 + */ + int update(HrmSnapshotPO hrmSnapshot); + + /** + * 修改,忽略null字段 + * + * @param hrmSnapshot 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(HrmSnapshotPO hrmSnapshot); + + /** + * 删除记录 + * + * @param hrmSnapshot 待删除的记录 + * @return 返回影响行数 + */ + int delete(HrmSnapshotPO hrmSnapshot); + + /** + * 批量删除记录 + * + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + + void deleteBySnapshotTime(Date snapshotTime); + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List currentEmpData(); + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml new file mode 100644 index 000000000..4ceb64c7a --- /dev/null +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml @@ -0,0 +1,1616 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t + . + ACCOUNTID1 + , t.ACCOUNTNAME + , t.ACCOUNTTYPE + , t.ACCUMFUNDACCOUNT + , t.ASSISTANTID + , t.BANKID1 + , t.BELONGTO + , t.BEMEMBERDATE + , t.BEPARTYDATE + , t.BIRTHDAY + , t.BIRTHPLACE + , t.CERTIFICATENUM + , t.companystartdate + , t.companyworkyear + , t.COSTCENTERID + , t.COUNTRYID + , t.DEGREE + , t.DEPARTMENTID + , t.DEPARTMENTNAME + , t.EDUCATIONLEVEL + , t.EMAIL + , t.employee_id + , t.ENDDATE + , t.EXTPHONE + , t.FAX + , t.FOLK + , t.HEALTHINFO + , t.HOMEADDRESS + , t.ID + , t.ISLABOUUNION + , t.JOBACTIVITYDESC + , t.JOBCALL + , t.JOBLEVEL + , t.JOBTITLE + , t.JOBTITLENAME + , t.LASTLOGINDATE + , t.LASTNAME + , t.LOCATIONID + , t.loginid + , t.MANAGERID + , t.MANAGERSTR + , t.MARITALSTATUS + , t.MOBILE + , t.MOBILECALL + , t.NATIONALITY + , t.NATIVEPLACE + , t.POLICY + , t.PROBATIONENDDATE + , t.REGRESIDENTPLACE + , t.RESIDENTPHONE + , t.RESIDENTPLACE + , t.RESIDENTPOSTCODE + , t.RESOURCETYPE + , t.SECLEVEL + , t.SEX + , t.snapshot_time + , t.STARTDATE + , t.STATUS + , t.SUBCOMPANYID1 + , t.SUBCOMPANYNAME + , t.TELEPHONE + , t.TEMPRESIDENTNUMBER + , t.USEKIND + , t.WORKCODE + , t.WORKROOM + , t.workstartdate + , t.workyear + + + + + + + + + + + + + + + INSERT INTO hrsa_hrm_snapshot + + + + ACCOUNTID1, + + + ACCOUNTNAME, + + + ACCOUNTTYPE, + + + ACCUMFUNDACCOUNT, + + + ASSISTANTID, + + + BANKID1, + + + BELONGTO, + + + BEMEMBERDATE, + + + BEPARTYDATE, + + + BIRTHDAY, + + + BIRTHPLACE, + + + CERTIFICATENUM, + + + companystartdate, + + + companyworkyear, + + + COSTCENTERID, + + + COUNTRYID, + + + DEGREE, + + + DEPARTMENTID, + + + DEPARTMENTNAME, + + + EDUCATIONLEVEL, + + + EMAIL, + + + employee_id, + + + ENDDATE, + + + EXTPHONE, + + + FAX, + + + FOLK, + + + HEALTHINFO, + + + HOMEADDRESS, + + + ID, + + + ISLABOUUNION, + + + JOBACTIVITYDESC, + + + JOBCALL, + + + JOBLEVEL, + + + JOBTITLE, + + + JOBTITLENAME, + + + LASTLOGINDATE, + + + LASTNAME, + + + LOCATIONID, + + + loginid, + + + MANAGERID, + + + MANAGERSTR, + + + MARITALSTATUS, + + + MOBILE, + + + MOBILECALL, + + + NATIONALITY, + + + NATIVEPLACE, + + + POLICY, + + + PROBATIONENDDATE, + + + REGRESIDENTPLACE, + + + RESIDENTPHONE, + + + RESIDENTPLACE, + + + RESIDENTPOSTCODE, + + + RESOURCETYPE, + + + SECLEVEL, + + + SEX, + + + snapshot_time, + + + STARTDATE, + + + STATUS, + + + SUBCOMPANYID1, + + + SUBCOMPANYNAME, + + + TELEPHONE, + + + TEMPRESIDENTNUMBER, + + + USEKIND, + + + WORKCODE, + + + WORKROOM, + + + workstartdate, + + + workyear, + + + + + #{accountid1}, + + + #{accountname}, + + + #{accounttype}, + + + #{accumfundaccount}, + + + #{assistantid}, + + + #{bankid1}, + + + #{belongto}, + + + #{bememberdate}, + + + #{bepartydate}, + + + #{birthday}, + + + #{birthplace}, + + + #{certificatenum}, + + + #{companystartdate}, + + + #{companyworkyear}, + + + #{costcenterid}, + + + #{countryid}, + + + #{degree}, + + + #{departmentid}, + + + #{departmentname}, + + + #{educationlevel}, + + + #{email}, + + + #{employeeId}, + + + #{enddate}, + + + #{extphone}, + + + #{fax}, + + + #{folk}, + + + #{healthinfo}, + + + #{homeaddress}, + + + #{id}, + + + #{islabouunion}, + + + #{jobactivitydesc}, + + + #{jobcall}, + + + #{joblevel}, + + + #{jobtitle}, + + + #{jobtitlename}, + + + #{lastlogindate}, + + + #{lastname}, + + + #{locationid}, + + + #{loginid}, + + + #{managerid}, + + + #{managerstr}, + + + #{maritalstatus}, + + + #{mobile}, + + + #{mobilecall}, + + + #{nationality}, + + + #{nativeplace}, + + + #{policy}, + + + #{probationenddate}, + + + #{regresidentplace}, + + + #{residentphone}, + + + #{residentplace}, + + + #{residentpostcode}, + + + #{resourcetype}, + + + #{seclevel}, + + + #{sex}, + + + #{snapshotTime}, + + + #{startdate}, + + + #{status}, + + + #{subcompanyid1}, + + + #{subcompanyname}, + + + #{telephone}, + + + #{tempresidentnumber}, + + + #{usekind}, + + + #{workcode}, + + + #{workroom}, + + + #{workstartdate}, + + + #{workyear}, + + + + + + + + INSERT INTO hrsa_hrm_snapshot + ( + ACCOUNTID1, + ACCOUNTNAME, + ACCOUNTTYPE, + ACCUMFUNDACCOUNT, + ASSISTANTID, + BANKID1, + BELONGTO, + BEMEMBERDATE, + BEPARTYDATE, + BIRTHDAY, + BIRTHPLACE, + CERTIFICATENUM, + companystartdate, + companyworkyear, + COSTCENTERID, + COUNTRYID, + DEGREE, + DEPARTMENTID, + DEPARTMENTNAME, + EDUCATIONLEVEL, + EMAIL, + employee_id, + ENDDATE, + EXTPHONE, + FAX, + FOLK, + HEALTHINFO, + HOMEADDRESS, + ID, + ISLABOUUNION, + JOBACTIVITYDESC, + JOBCALL, + JOBLEVEL, + JOBTITLE, + JOBTITLENAME, + LASTLOGINDATE, + LASTNAME, + LOCATIONID, + loginid, + MANAGERID, + MANAGERSTR, + MARITALSTATUS, + MOBILE, + MOBILECALL, + NATIONALITY, + NATIVEPLACE, + POLICY, + PROBATIONENDDATE, + REGRESIDENTPLACE, + RESIDENTPHONE, + RESIDENTPLACE, + RESIDENTPOSTCODE, + RESOURCETYPE, + SECLEVEL, + SEX, + snapshot_time, + STARTDATE, + STATUS, + SUBCOMPANYID1, + SUBCOMPANYNAME, + TELEPHONE, + TEMPRESIDENTNUMBER, + USEKIND, + WORKCODE, + WORKROOM, + workstartdate, + workyear, + ) + VALUES + + + ( + #{item.accountid1}, + #{item.accountname}, + #{item.accounttype}, + #{item.accumfundaccount}, + #{item.assistantid}, + #{item.bankid1}, + #{item.belongto}, + #{item.bememberdate}, + #{item.bepartydate}, + #{item.birthday}, + #{item.birthplace}, + #{item.certificatenum}, + #{item.companystartdate}, + #{item.companyworkyear}, + #{item.costcenterid}, + #{item.countryid}, + #{item.degree}, + #{item.departmentid}, + #{item.departmentname}, + #{item.educationlevel}, + #{item.email}, + #{item.employeeId}, + #{item.enddate}, + #{item.extphone}, + #{item.fax}, + #{item.folk}, + #{item.healthinfo}, + #{item.homeaddress}, + #{item.id}, + #{item.islabouunion}, + #{item.jobactivitydesc}, + #{item.jobcall}, + #{item.joblevel}, + #{item.jobtitle}, + #{item.jobtitlename}, + #{item.lastlogindate}, + #{item.lastname}, + #{item.locationid}, + #{item.loginid}, + #{item.managerid}, + #{item.managerstr}, + #{item.maritalstatus}, + #{item.mobile}, + #{item.mobilecall}, + #{item.nationality}, + #{item.nativeplace}, + #{item.policy}, + #{item.probationenddate}, + #{item.regresidentplace}, + #{item.residentphone}, + #{item.residentplace}, + #{item.residentpostcode}, + #{item.resourcetype}, + #{item.seclevel}, + #{item.sex}, + #{item.snapshotTime}, + #{item.startdate}, + #{item.status}, + #{item.subcompanyid1}, + #{item.subcompanyname}, + #{item.telephone}, + #{item.tempresidentnumber}, + #{item.usekind}, + #{item.workcode}, + #{item.workroom}, + #{item.workstartdate}, + #{item.workyear}, + ) + + + + + + + INSERT INTO hrsa_hrm_snapshot ( + ACCOUNTID1, + ACCOUNTNAME, + ACCOUNTTYPE, + ACCUMFUNDACCOUNT, + ASSISTANTID, + BANKID1, + BELONGTO, + BEMEMBERDATE, + BEPARTYDATE, + BIRTHDAY, + BIRTHPLACE, + CERTIFICATENUM, + companystartdate, + companyworkyear, + COSTCENTERID, + COUNTRYID, + DEGREE, + DEPARTMENTID, + DEPARTMENTNAME, + EDUCATIONLEVEL, + EMAIL, + employee_id, + ENDDATE, + EXTPHONE, + FAX, + FOLK, + HEALTHINFO, + HOMEADDRESS, + ID, + ISLABOUUNION, + JOBACTIVITYDESC, + JOBCALL, + JOBLEVEL, + JOBTITLE, + JOBTITLENAME, + LASTLOGINDATE, + LASTNAME, + LOCATIONID, + loginid, + MANAGERID, + MANAGERSTR, + MARITALSTATUS, + MOBILE, + MOBILECALL, + NATIONALITY, + NATIVEPLACE, + POLICY, + PROBATIONENDDATE, + REGRESIDENTPLACE, + RESIDENTPHONE, + RESIDENTPLACE, + RESIDENTPOSTCODE, + RESOURCETYPE, + SECLEVEL, + SEX, + snapshot_time, + STARTDATE, + STATUS, + SUBCOMPANYID1, + SUBCOMPANYNAME, + TELEPHONE, + TEMPRESIDENTNUMBER, + USEKIND, + WORKCODE, + WORKROOM, + workstartdate, + workyear, + ) + + + select + #{item.accountid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.accountname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.accounttype,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.accumfundaccount,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.assistantid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.bankid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.belongto,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.bememberdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.bepartydate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.birthday,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.birthplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.certificatenum,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.companystartdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.companyworkyear,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.costcenterid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.countryid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.degree,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.departmentid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.departmentname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.educationlevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.email,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.employeeId,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.enddate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.extphone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.fax,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.folk,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.healthinfo,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.homeaddress,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.id,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.islabouunion,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.jobactivitydesc,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.jobcall,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.joblevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.jobtitle,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.jobtitlename,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.lastlogindate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.lastname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.locationid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.loginid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.managerid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.managerstr,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.maritalstatus,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.mobile,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.mobilecall,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.nationality,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.nativeplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.policy,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.probationenddate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.regresidentplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.residentphone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.residentplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.residentpostcode,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.resourcetype,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.seclevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.sex,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.snapshotTime,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.startdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.status,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.subcompanyid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.subcompanyname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.telephone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.tempresidentnumber,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.usekind,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.workcode,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.workroom,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.workstartdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + #{item.workyear,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, + from dual + + + + + + + INSERT INTO hrsa_hrm_snapshot ( + ACCOUNTID1, + ACCOUNTNAME, + ACCOUNTTYPE, + ACCUMFUNDACCOUNT, + ASSISTANTID, + BANKID1, + BELONGTO, + BEMEMBERDATE, + BEPARTYDATE, + BIRTHDAY, + BIRTHPLACE, + CERTIFICATENUM, + companystartdate, + companyworkyear, + COSTCENTERID, + COUNTRYID, + DEGREE, + DEPARTMENTID, + DEPARTMENTNAME, + EDUCATIONLEVEL, + EMAIL, + employee_id, + ENDDATE, + EXTPHONE, + FAX, + FOLK, + HEALTHINFO, + HOMEADDRESS, + ID, + ISLABOUUNION, + JOBACTIVITYDESC, + JOBCALL, + JOBLEVEL, + JOBTITLE, + JOBTITLENAME, + LASTLOGINDATE, + LASTNAME, + LOCATIONID, + loginid, + MANAGERID, + MANAGERSTR, + MARITALSTATUS, + MOBILE, + MOBILECALL, + NATIONALITY, + NATIVEPLACE, + POLICY, + PROBATIONENDDATE, + REGRESIDENTPLACE, + RESIDENTPHONE, + RESIDENTPLACE, + RESIDENTPOSTCODE, + RESOURCETYPE, + SECLEVEL, + SEX, + snapshot_time, + STARTDATE, + STATUS, + SUBCOMPANYID1, + SUBCOMPANYNAME, + TELEPHONE, + TEMPRESIDENTNUMBER, + USEKIND, + WORKCODE, + WORKROOM, + workstartdate, + workyear, + ) + VALUES + ( + #{item.accountid1}, + #{item.accountname}, + #{item.accounttype}, + #{item.accumfundaccount}, + #{item.assistantid}, + #{item.bankid1}, + #{item.belongto}, + #{item.bememberdate}, + #{item.bepartydate}, + #{item.birthday}, + #{item.birthplace}, + #{item.certificatenum}, + #{item.companystartdate}, + #{item.companyworkyear}, + #{item.costcenterid}, + #{item.countryid}, + #{item.degree}, + #{item.departmentid}, + #{item.departmentname}, + #{item.educationlevel}, + #{item.email}, + #{item.employeeId}, + #{item.enddate}, + #{item.extphone}, + #{item.fax}, + #{item.folk}, + #{item.healthinfo}, + #{item.homeaddress}, + #{item.id}, + #{item.islabouunion}, + #{item.jobactivitydesc}, + #{item.jobcall}, + #{item.joblevel}, + #{item.jobtitle}, + #{item.jobtitlename}, + #{item.lastlogindate}, + #{item.lastname}, + #{item.locationid}, + #{item.loginid}, + #{item.managerid}, + #{item.managerstr}, + #{item.maritalstatus}, + #{item.mobile}, + #{item.mobilecall}, + #{item.nationality}, + #{item.nativeplace}, + #{item.policy}, + #{item.probationenddate}, + #{item.regresidentplace}, + #{item.residentphone}, + #{item.residentplace}, + #{item.residentpostcode}, + #{item.resourcetype}, + #{item.seclevel}, + #{item.sex}, + #{item.snapshotTime}, + #{item.startdate}, + #{item.status}, + #{item.subcompanyid1}, + #{item.subcompanyname}, + #{item.telephone}, + #{item.tempresidentnumber}, + #{item.usekind}, + #{item.workcode}, + #{item.workroom}, + #{item.workstartdate}, + #{item.workyear}, + ) + + + + + + UPDATE hrsa_hrm_snapshot + + ACCOUNTID1=#{accountid1}, + ACCOUNTNAME=#{accountname}, + ACCOUNTTYPE=#{accounttype}, + ACCUMFUNDACCOUNT=#{accumfundaccount}, + ASSISTANTID=#{assistantid}, + BANKID1=#{bankid1}, + BELONGTO=#{belongto}, + BEMEMBERDATE=#{bememberdate}, + BEPARTYDATE=#{bepartydate}, + BIRTHDAY=#{birthday}, + BIRTHPLACE=#{birthplace}, + CERTIFICATENUM=#{certificatenum}, + companystartdate=#{companystartdate}, + companyworkyear=#{companyworkyear}, + COSTCENTERID=#{costcenterid}, + COUNTRYID=#{countryid}, + DEGREE=#{degree}, + DEPARTMENTID=#{departmentid}, + DEPARTMENTNAME=#{departmentname}, + EDUCATIONLEVEL=#{educationlevel}, + EMAIL=#{email}, + employee_id=#{employeeId}, + ENDDATE=#{enddate}, + EXTPHONE=#{extphone}, + FAX=#{fax}, + FOLK=#{folk}, + HEALTHINFO=#{healthinfo}, + HOMEADDRESS=#{homeaddress}, + ISLABOUUNION=#{islabouunion}, + JOBACTIVITYDESC=#{jobactivitydesc}, + JOBCALL=#{jobcall}, + JOBLEVEL=#{joblevel}, + JOBTITLE=#{jobtitle}, + JOBTITLENAME=#{jobtitlename}, + LASTLOGINDATE=#{lastlogindate}, + LASTNAME=#{lastname}, + LOCATIONID=#{locationid}, + loginid=#{loginid}, + MANAGERID=#{managerid}, + MANAGERSTR=#{managerstr}, + MARITALSTATUS=#{maritalstatus}, + MOBILE=#{mobile}, + MOBILECALL=#{mobilecall}, + NATIONALITY=#{nationality}, + NATIVEPLACE=#{nativeplace}, + POLICY=#{policy}, + PROBATIONENDDATE=#{probationenddate}, + REGRESIDENTPLACE=#{regresidentplace}, + RESIDENTPHONE=#{residentphone}, + RESIDENTPLACE=#{residentplace}, + RESIDENTPOSTCODE=#{residentpostcode}, + RESOURCETYPE=#{resourcetype}, + SECLEVEL=#{seclevel}, + SEX=#{sex}, + snapshot_time=#{snapshotTime}, + STARTDATE=#{startdate}, + STATUS=#{status}, + SUBCOMPANYID1=#{subcompanyid1}, + SUBCOMPANYNAME=#{subcompanyname}, + TELEPHONE=#{telephone}, + TEMPRESIDENTNUMBER=#{tempresidentnumber}, + USEKIND=#{usekind}, + WORKCODE=#{workcode}, + WORKROOM=#{workroom}, + workstartdate=#{workstartdate}, + workyear=#{workyear}, + + WHERE ID = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_hrm_snapshot + + + ACCOUNTID1=#{accountid1}, + + + ACCOUNTNAME=#{accountname}, + + + ACCOUNTTYPE=#{accounttype}, + + + ACCUMFUNDACCOUNT=#{accumfundaccount}, + + + ASSISTANTID=#{assistantid}, + + + BANKID1=#{bankid1}, + + + BELONGTO=#{belongto}, + + + BEMEMBERDATE=#{bememberdate}, + + + BEPARTYDATE=#{bepartydate}, + + + BIRTHDAY=#{birthday}, + + + BIRTHPLACE=#{birthplace}, + + + CERTIFICATENUM=#{certificatenum}, + + + companystartdate=#{companystartdate}, + + + companyworkyear=#{companyworkyear}, + + + COSTCENTERID=#{costcenterid}, + + + COUNTRYID=#{countryid}, + + + DEGREE=#{degree}, + + + DEPARTMENTID=#{departmentid}, + + + DEPARTMENTNAME=#{departmentname}, + + + EDUCATIONLEVEL=#{educationlevel}, + + + EMAIL=#{email}, + + + employee_id=#{employeeId}, + + + ENDDATE=#{enddate}, + + + EXTPHONE=#{extphone}, + + + FAX=#{fax}, + + + FOLK=#{folk}, + + + HEALTHINFO=#{healthinfo}, + + + HOMEADDRESS=#{homeaddress}, + + + ISLABOUUNION=#{islabouunion}, + + + JOBACTIVITYDESC=#{jobactivitydesc}, + + + JOBCALL=#{jobcall}, + + + JOBLEVEL=#{joblevel}, + + + JOBTITLE=#{jobtitle}, + + + JOBTITLENAME=#{jobtitlename}, + + + LASTLOGINDATE=#{lastlogindate}, + + + LASTNAME=#{lastname}, + + + LOCATIONID=#{locationid}, + + + loginid=#{loginid}, + + + MANAGERID=#{managerid}, + + + MANAGERSTR=#{managerstr}, + + + MARITALSTATUS=#{maritalstatus}, + + + MOBILE=#{mobile}, + + + MOBILECALL=#{mobilecall}, + + + NATIONALITY=#{nationality}, + + + NATIVEPLACE=#{nativeplace}, + + + POLICY=#{policy}, + + + PROBATIONENDDATE=#{probationenddate}, + + + REGRESIDENTPLACE=#{regresidentplace}, + + + RESIDENTPHONE=#{residentphone}, + + + RESIDENTPLACE=#{residentplace}, + + + RESIDENTPOSTCODE=#{residentpostcode}, + + + RESOURCETYPE=#{resourcetype}, + + + SECLEVEL=#{seclevel}, + + + SEX=#{sex}, + + + snapshot_time=#{snapshotTime}, + + + STARTDATE=#{startdate}, + + + STATUS=#{status}, + + + SUBCOMPANYID1=#{subcompanyid1}, + + + SUBCOMPANYNAME=#{subcompanyname}, + + + TELEPHONE=#{telephone}, + + + TEMPRESIDENTNUMBER=#{tempresidentnumber}, + + + USEKIND=#{usekind}, + + + WORKCODE=#{workcode}, + + + WORKROOM=#{workroom}, + + + workstartdate=#{workstartdate}, + + + workyear=#{workyear}, + + + WHERE ID = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_hrm_snapshot + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_hrm_snapshot + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + delete from hrsa_hrm_snapshot + WHERE snapshot_time = #{snapshotTime} + + + + e + . + ID as employee_id + ,e.loginid + ,e.LASTNAME + ,e.SEX + ,e.BIRTHDAY + ,e.NATIONALITY + ,e.MARITALSTATUS + ,e.TELEPHONE + ,e.MOBILE + ,e.MOBILECALL + ,e.EMAIL + ,e.LOCATIONID + ,e.WORKROOM + ,e.HOMEADDRESS + ,e.RESOURCETYPE + ,e.STARTDATE + ,e.ENDDATE + ,e.JOBTITLE + ,j.JOBTITLENAME + ,e.JOBACTIVITYDESC + ,e.JOBLEVEL + ,e.SECLEVEL + ,e.DEPARTMENTID + ,d.DEPARTMENTNAME + ,e.SUBCOMPANYID1 + ,c.SUBCOMPANYNAME + ,e.COSTCENTERID + ,e.MANAGERID + ,e.ASSISTANTID + ,e.BANKID1 + ,e.ACCOUNTID1 + ,e.LASTLOGINDATE + ,e.CERTIFICATENUM + ,e.NATIVEPLACE + ,e.EDUCATIONLEVEL + ,e.BEMEMBERDATE + ,e.BEPARTYDATE + ,e.WORKCODE + ,e.REGRESIDENTPLACE + ,e.HEALTHINFO + ,e.RESIDENTPLACE + ,e.POLICY + ,e.DEGREE + ,e.USEKIND + ,e.JOBCALL + ,e.ACCUMFUNDACCOUNT + ,e.BIRTHPLACE + ,e.FOLK + ,e.RESIDENTPHONE + ,e.RESIDENTPOSTCODE + ,e.EXTPHONE + ,e.MANAGERSTR + ,e.STATUS + ,e.FAX + ,e.ISLABOUUNION + ,e.TEMPRESIDENTNUMBER + ,e.PROBATIONENDDATE + ,e.COUNTRYID + ,e.ACCOUNTTYPE + ,e.BELONGTO + ,e.ACCOUNTNAME + ,e.companystartdate + ,e.workstartdate + ,e.companyworkyear + ,e.workyear + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/timer/HrmSnapshotJob.java b/src/com/engine/salary/timer/HrmSnapshotJob.java new file mode 100644 index 000000000..5a256371a --- /dev/null +++ b/src/com/engine/salary/timer/HrmSnapshotJob.java @@ -0,0 +1,51 @@ +package com.engine.salary.timer; + +import cn.hutool.core.util.StrUtil; +import com.engine.salary.entity.hrm.po.HrmSnapshotPO; +import com.engine.salary.mapper.hrm.HrmSnapshotMapper; +import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import weaver.hrm.User; +import weaver.interfaces.schedule.BaseCronJob; + +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + + +public class HrmSnapshotJob extends BaseCronJob { + + private String appointSnapshotTime; + + private HrmSnapshotMapper getHrmSnapshotMapper() { + return MapperProxyFactory.getProxy(HrmSnapshotMapper.class); + } + + @Override + public void execute() { + User user = new User(); + user.setUid(1); + user.setLoginid("sysadmin"); + + List hrmSnapshotPOS = getHrmSnapshotMapper().currentEmpData(); + + Date snapshotTime = StrUtil.isNotBlank(appointSnapshotTime) && SalaryDateUtil.checkDay(appointSnapshotTime) ? SalaryDateUtil.dateStrToLocalDate(appointSnapshotTime) : SalaryDateUtil.localDateToDate(LocalDate.now()); + + //先删除当日快照 + getHrmSnapshotMapper().deleteBySnapshotTime(snapshotTime); + + hrmSnapshotPOS.forEach(hrmSnapshotPO -> { + + hrmSnapshotPO.setId(IdGenerator.generate()); + hrmSnapshotPO.setSnapshotTime(snapshotTime); + + getHrmSnapshotMapper().insertIgnoreNull(hrmSnapshotPO); + + }); + + + System.out.println(hrmSnapshotPOS); + } + +} From 85e3d414fe5e3678463f8e64f730545718a9b22b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 4 Dec 2024 15:41:11 +0800 Subject: [PATCH 02/22] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/mapper/hrm/HrmSnapshotMapper.java | 3 + .../salary/mapper/hrm/HrmSnapshotMapper.xml | 460 +----------------- .../impl/SalaryEmployeeServiceImpl.java | 11 + 3 files changed, 27 insertions(+), 447 deletions(-) diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java index 077e96d70..b8598f68a 100644 --- a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java @@ -16,6 +16,8 @@ public interface HrmSnapshotMapper { */ List listAll(); + List snapshot(List employeeIds, Date snapshotTime); + /** * 条件查询 * @@ -87,4 +89,5 @@ public interface HrmSnapshotMapper { */ List currentEmpData(); + } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml index 4ceb64c7a..b2cbfc262 100644 --- a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml @@ -58,7 +58,6 @@ - @@ -150,7 +149,14 @@ SELECT FROM hrsa_hrm_snapshot t - WHERE delete_type = 0 + + + + @@ -158,7 +164,7 @@ SELECT FROM hrsa_hrm_snapshot t - WHERE ID = #{id} AND delete_type = 0 + WHERE ID = #{id} @@ -166,7 +172,7 @@ SELECT FROM hrsa_hrm_snapshot t - WHERE delete_type = 0 + WHERE 1=1 AND ACCOUNTID1 = #{accountid1} @@ -790,445 +796,6 @@ - - - - INSERT INTO hrsa_hrm_snapshot - ( - ACCOUNTID1, - ACCOUNTNAME, - ACCOUNTTYPE, - ACCUMFUNDACCOUNT, - ASSISTANTID, - BANKID1, - BELONGTO, - BEMEMBERDATE, - BEPARTYDATE, - BIRTHDAY, - BIRTHPLACE, - CERTIFICATENUM, - companystartdate, - companyworkyear, - COSTCENTERID, - COUNTRYID, - DEGREE, - DEPARTMENTID, - DEPARTMENTNAME, - EDUCATIONLEVEL, - EMAIL, - employee_id, - ENDDATE, - EXTPHONE, - FAX, - FOLK, - HEALTHINFO, - HOMEADDRESS, - ID, - ISLABOUUNION, - JOBACTIVITYDESC, - JOBCALL, - JOBLEVEL, - JOBTITLE, - JOBTITLENAME, - LASTLOGINDATE, - LASTNAME, - LOCATIONID, - loginid, - MANAGERID, - MANAGERSTR, - MARITALSTATUS, - MOBILE, - MOBILECALL, - NATIONALITY, - NATIVEPLACE, - POLICY, - PROBATIONENDDATE, - REGRESIDENTPLACE, - RESIDENTPHONE, - RESIDENTPLACE, - RESIDENTPOSTCODE, - RESOURCETYPE, - SECLEVEL, - SEX, - snapshot_time, - STARTDATE, - STATUS, - SUBCOMPANYID1, - SUBCOMPANYNAME, - TELEPHONE, - TEMPRESIDENTNUMBER, - USEKIND, - WORKCODE, - WORKROOM, - workstartdate, - workyear, - ) - VALUES - - - ( - #{item.accountid1}, - #{item.accountname}, - #{item.accounttype}, - #{item.accumfundaccount}, - #{item.assistantid}, - #{item.bankid1}, - #{item.belongto}, - #{item.bememberdate}, - #{item.bepartydate}, - #{item.birthday}, - #{item.birthplace}, - #{item.certificatenum}, - #{item.companystartdate}, - #{item.companyworkyear}, - #{item.costcenterid}, - #{item.countryid}, - #{item.degree}, - #{item.departmentid}, - #{item.departmentname}, - #{item.educationlevel}, - #{item.email}, - #{item.employeeId}, - #{item.enddate}, - #{item.extphone}, - #{item.fax}, - #{item.folk}, - #{item.healthinfo}, - #{item.homeaddress}, - #{item.id}, - #{item.islabouunion}, - #{item.jobactivitydesc}, - #{item.jobcall}, - #{item.joblevel}, - #{item.jobtitle}, - #{item.jobtitlename}, - #{item.lastlogindate}, - #{item.lastname}, - #{item.locationid}, - #{item.loginid}, - #{item.managerid}, - #{item.managerstr}, - #{item.maritalstatus}, - #{item.mobile}, - #{item.mobilecall}, - #{item.nationality}, - #{item.nativeplace}, - #{item.policy}, - #{item.probationenddate}, - #{item.regresidentplace}, - #{item.residentphone}, - #{item.residentplace}, - #{item.residentpostcode}, - #{item.resourcetype}, - #{item.seclevel}, - #{item.sex}, - #{item.snapshotTime}, - #{item.startdate}, - #{item.status}, - #{item.subcompanyid1}, - #{item.subcompanyname}, - #{item.telephone}, - #{item.tempresidentnumber}, - #{item.usekind}, - #{item.workcode}, - #{item.workroom}, - #{item.workstartdate}, - #{item.workyear}, - ) - - - - - - - INSERT INTO hrsa_hrm_snapshot ( - ACCOUNTID1, - ACCOUNTNAME, - ACCOUNTTYPE, - ACCUMFUNDACCOUNT, - ASSISTANTID, - BANKID1, - BELONGTO, - BEMEMBERDATE, - BEPARTYDATE, - BIRTHDAY, - BIRTHPLACE, - CERTIFICATENUM, - companystartdate, - companyworkyear, - COSTCENTERID, - COUNTRYID, - DEGREE, - DEPARTMENTID, - DEPARTMENTNAME, - EDUCATIONLEVEL, - EMAIL, - employee_id, - ENDDATE, - EXTPHONE, - FAX, - FOLK, - HEALTHINFO, - HOMEADDRESS, - ID, - ISLABOUUNION, - JOBACTIVITYDESC, - JOBCALL, - JOBLEVEL, - JOBTITLE, - JOBTITLENAME, - LASTLOGINDATE, - LASTNAME, - LOCATIONID, - loginid, - MANAGERID, - MANAGERSTR, - MARITALSTATUS, - MOBILE, - MOBILECALL, - NATIONALITY, - NATIVEPLACE, - POLICY, - PROBATIONENDDATE, - REGRESIDENTPLACE, - RESIDENTPHONE, - RESIDENTPLACE, - RESIDENTPOSTCODE, - RESOURCETYPE, - SECLEVEL, - SEX, - snapshot_time, - STARTDATE, - STATUS, - SUBCOMPANYID1, - SUBCOMPANYNAME, - TELEPHONE, - TEMPRESIDENTNUMBER, - USEKIND, - WORKCODE, - WORKROOM, - workstartdate, - workyear, - ) - - - select - #{item.accountid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.accountname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.accounttype,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.accumfundaccount,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.assistantid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.bankid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.belongto,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.bememberdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.bepartydate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.birthday,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.birthplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.certificatenum,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.companystartdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.companyworkyear,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.costcenterid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.countryid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.degree,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.departmentid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.departmentname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.educationlevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.email,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.employeeId,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.enddate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.extphone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.fax,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.folk,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.healthinfo,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.homeaddress,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.id,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.islabouunion,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.jobactivitydesc,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.jobcall,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.joblevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.jobtitle,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.jobtitlename,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.lastlogindate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.lastname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.locationid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.loginid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.managerid,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.managerstr,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.maritalstatus,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.mobile,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.mobilecall,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.nationality,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.nativeplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.policy,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.probationenddate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.regresidentplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.residentphone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.residentplace,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.residentpostcode,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.resourcetype,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.seclevel,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.sex,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.snapshotTime,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.startdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.status,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.subcompanyid1,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.subcompanyname,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.telephone,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.tempresidentnumber,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.usekind,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.workcode,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.workroom,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.workstartdate,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - #{item.workyear,jdbcType=DOUBLE、DATE、VARCHAR、INTEGER}, - from dual - - - - - - - INSERT INTO hrsa_hrm_snapshot ( - ACCOUNTID1, - ACCOUNTNAME, - ACCOUNTTYPE, - ACCUMFUNDACCOUNT, - ASSISTANTID, - BANKID1, - BELONGTO, - BEMEMBERDATE, - BEPARTYDATE, - BIRTHDAY, - BIRTHPLACE, - CERTIFICATENUM, - companystartdate, - companyworkyear, - COSTCENTERID, - COUNTRYID, - DEGREE, - DEPARTMENTID, - DEPARTMENTNAME, - EDUCATIONLEVEL, - EMAIL, - employee_id, - ENDDATE, - EXTPHONE, - FAX, - FOLK, - HEALTHINFO, - HOMEADDRESS, - ID, - ISLABOUUNION, - JOBACTIVITYDESC, - JOBCALL, - JOBLEVEL, - JOBTITLE, - JOBTITLENAME, - LASTLOGINDATE, - LASTNAME, - LOCATIONID, - loginid, - MANAGERID, - MANAGERSTR, - MARITALSTATUS, - MOBILE, - MOBILECALL, - NATIONALITY, - NATIVEPLACE, - POLICY, - PROBATIONENDDATE, - REGRESIDENTPLACE, - RESIDENTPHONE, - RESIDENTPLACE, - RESIDENTPOSTCODE, - RESOURCETYPE, - SECLEVEL, - SEX, - snapshot_time, - STARTDATE, - STATUS, - SUBCOMPANYID1, - SUBCOMPANYNAME, - TELEPHONE, - TEMPRESIDENTNUMBER, - USEKIND, - WORKCODE, - WORKROOM, - workstartdate, - workyear, - ) - VALUES - ( - #{item.accountid1}, - #{item.accountname}, - #{item.accounttype}, - #{item.accumfundaccount}, - #{item.assistantid}, - #{item.bankid1}, - #{item.belongto}, - #{item.bememberdate}, - #{item.bepartydate}, - #{item.birthday}, - #{item.birthplace}, - #{item.certificatenum}, - #{item.companystartdate}, - #{item.companyworkyear}, - #{item.costcenterid}, - #{item.countryid}, - #{item.degree}, - #{item.departmentid}, - #{item.departmentname}, - #{item.educationlevel}, - #{item.email}, - #{item.employeeId}, - #{item.enddate}, - #{item.extphone}, - #{item.fax}, - #{item.folk}, - #{item.healthinfo}, - #{item.homeaddress}, - #{item.id}, - #{item.islabouunion}, - #{item.jobactivitydesc}, - #{item.jobcall}, - #{item.joblevel}, - #{item.jobtitle}, - #{item.jobtitlename}, - #{item.lastlogindate}, - #{item.lastname}, - #{item.locationid}, - #{item.loginid}, - #{item.managerid}, - #{item.managerstr}, - #{item.maritalstatus}, - #{item.mobile}, - #{item.mobilecall}, - #{item.nationality}, - #{item.nativeplace}, - #{item.policy}, - #{item.probationenddate}, - #{item.regresidentplace}, - #{item.residentphone}, - #{item.residentplace}, - #{item.residentpostcode}, - #{item.resourcetype}, - #{item.seclevel}, - #{item.sex}, - #{item.snapshotTime}, - #{item.startdate}, - #{item.status}, - #{item.subcompanyid1}, - #{item.subcompanyname}, - #{item.telephone}, - #{item.tempresidentnumber}, - #{item.usekind}, - #{item.workcode}, - #{item.workroom}, - #{item.workstartdate}, - #{item.workyear}, - ) - - - UPDATE hrsa_hrm_snapshot @@ -1300,7 +867,7 @@ workstartdate=#{workstartdate}, workyear=#{workyear}, - WHERE ID = #{id} AND delete_type = 0 + WHERE ID = #{id} @@ -1507,7 +1074,7 @@ workyear=#{workyear}, - WHERE ID = #{id} AND delete_type = 0 + WHERE ID = #{id} @@ -1522,8 +1089,7 @@ UPDATE hrsa_hrm_snapshot SET delete_type = 1 - WHERE delete_type = 0 - AND id IN + WHERE id IN #{id} diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 6d6637dc5..42b555cdb 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -15,6 +15,7 @@ import com.engine.salary.entity.hrm.SubCompanyInfo; import com.engine.salary.entity.hrm.dto.EmployeeInfoExpandDTO; import com.engine.salary.entity.hrm.dto.FieldSetting; import com.engine.salary.entity.hrm.po.ExpandFieldSettingsPO; +import com.engine.salary.entity.hrm.po.HrmSnapshotPO; import com.engine.salary.entity.salarysob.bo.SalarySobRangeBO; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobRangePO; @@ -23,6 +24,7 @@ import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.mapper.datacollection.EmployMapper; import com.engine.salary.mapper.hrm.ExpandFieldSettingsMapper; +import com.engine.salary.mapper.hrm.HrmSnapshotMapper; import com.engine.salary.service.ExtEmpService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.SalarySobExtRangeService; @@ -33,6 +35,7 @@ import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; 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.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -60,6 +63,10 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee private EmployBiz employBiz = new EmployBiz(); + private HrmSnapshotMapper getHrmSnapshotMapper() { + return MapperProxyFactory.getProxy(HrmSnapshotMapper.class); + } + private EmployMapper getEmployMapper() { return SqlProxyHandle.getProxy(EmployMapper.class); } @@ -612,4 +619,8 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee } return SalaryI18nUtil.i18n(getEmployMapper().getJobCallInfoById(jobCallId)); } + + public List snapshot(List employeeIds, Date snapshotTime) { + return getHrmSnapshotMapper().snapshot(employeeIds, snapshotTime); + } } From de5af5f2c90bddffc9e43b95cb98d49d562a2dbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 6 Dec 2024 16:00:05 +0800 Subject: [PATCH 03/22] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/hrm/po/HrmSnapshotPO.java | 6 ++ .../salaryacct/bo/SalaryAcctEmployeeBO.java | 20 +++--- .../salaryacct/bo/SalaryAcctFormulaBO.java | 6 +- .../salary/mapper/hrm/HrmSnapshotMapper.java | 8 +-- .../salary/mapper/hrm/HrmSnapshotMapper.xml | 19 ++++++ .../salary/service/SalaryEmployeeService.java | 3 + .../impl/SalaryAcctEmployeeServiceImpl.java | 68 ++++++++++++------- .../impl/SalaryEmployeeServiceImpl.java | 48 ++++++++++++- .../engine/salary/timer/HrmSnapshotJob.java | 29 ++++---- 9 files changed, 150 insertions(+), 57 deletions(-) diff --git a/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java b/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java index 2dc410de5..48411733a 100644 --- a/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java +++ b/src/com/engine/salary/entity/hrm/po/HrmSnapshotPO.java @@ -221,6 +221,12 @@ public class HrmSnapshotPO { @ElogTransform(name = "职称") private Integer jobcall; + /** + * 职称名称 + */ + @ElogTransform(name = "职称名称") + private String jobcallname; + /** * 工作级别 */ diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java index a8dbc514e..09505ef25 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java @@ -103,16 +103,16 @@ public class SalaryAcctEmployeeBO { .employeeId(emp.getEmployeeId()) .employeeType(emp.isExtEmp() ? 1 : 0) .taxAgentId(taxAgentId) - .departmentId(emp.getDepartmentId()) - .departmentName(emp.getDepartmentName()) - .jobcall(emp.getJobcall()) - .jobcallId(emp.getJobcallId()) - .jobtitleId(emp.getJobtitleId()) - .jobtitleName(emp.getJobtitleName()) - .subcompanyId(emp.getSubcompanyid()) - .subcompanyName(emp.getSubcompanyName()) - .status(emp.getStatus()) - .accountType(emp.getAccountType()) +// .departmentId(emp.getDepartmentId()) +// .departmentName(emp.getDepartmentName()) +// .jobcall(emp.getJobcall()) +// .jobcallId(emp.getJobcallId()) +// .jobtitleId(emp.getJobtitleId()) +// .jobtitleName(emp.getJobtitleName()) +// .subcompanyId(emp.getSubcompanyid()) +// .subcompanyName(emp.getSubcompanyName()) +// .status(emp.getStatus()) +// .accountType(emp.getAccountType()) .creator(employeeId) .createTime(now) .updateTime(now) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java index cc19925b2..b3335f05e 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctFormulaBO.java @@ -6,12 +6,14 @@ import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobBackItemPO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; +import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; import java.math.BigDecimal; import java.util.Collections; @@ -115,8 +117,8 @@ public class SalaryAcctFormulaBO { .mobile(simpleEmployee.getMobile()) .telephone(simpleEmployee.getTelephone()) .sex(sexName) - .status(simpleEmployee.getStatus()) - .statusName(simpleEmployee.getStatusName()) + .status(salaryAcctEmployeePO.getStatus()) + .statusName(UserStatusEnum.getDefaultLabelByValue(new Integer(Util.null2s(salaryAcctEmployeePO.getStatus(), "1")))) .accountType(simpleEmployee.getAccountType()) .accountTypeName(simpleEmployee.getAccountTypeName()) .departmentName(salaryAcctEmployeePO.getDepartmentName()) diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java index b8598f68a..81082b003 100644 --- a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.java @@ -16,7 +16,7 @@ public interface HrmSnapshotMapper { */ List listAll(); - List snapshot(List employeeIds, Date snapshotTime); + List snapshot(@Param("employeeId")Long employeeId, @Param("snapshotTime")Date snapshotTime); /** * 条件查询 @@ -42,12 +42,6 @@ public interface HrmSnapshotMapper { */ int insertIgnoreNull(HrmSnapshotPO hrmSnapshot); - /** - * 批量插入 - * - * @param hrmSnapshot - */ - void batchInsert(@Param("collection") List hrmSnapshot); /** * 修改,修改所有字段 diff --git a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml index b2cbfc262..d56a738ea 100644 --- a/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml +++ b/src/com/engine/salary/mapper/hrm/HrmSnapshotMapper.xml @@ -35,6 +35,7 @@ + @@ -107,6 +108,7 @@ , t.ISLABOUUNION , t.JOBACTIVITYDESC , t.JOBCALL + , t.jobcallname , t.JOBLEVEL , t.JOBTITLE , t.JOBTITLENAME @@ -157,6 +159,8 @@ FROM hrsa_hrm_snapshot t WHERE snapshot_time >= #{snapshotTime} + AND employee_id = #{employeeId} + order by snapshot_time @@ -269,6 +273,9 @@ AND JOBCALL = #{jobcall} + + AND jobcallname = #{jobcallname} + AND JOBLEVEL = #{joblevel} @@ -485,6 +492,9 @@ JOBCALL, + + jobcallname, + JOBLEVEL, @@ -688,6 +698,9 @@ #{jobcall}, + + #{jobcallname}, + #{joblevel}, @@ -831,6 +844,7 @@ ISLABOUUNION=#{islabouunion}, JOBACTIVITYDESC=#{jobactivitydesc}, JOBCALL=#{jobcall}, + jobcallname=#{jobcallname}, JOBLEVEL=#{joblevel}, JOBTITLE=#{jobtitle}, JOBTITLENAME=#{jobtitlename}, @@ -968,6 +982,9 @@ JOBCALL=#{jobcall}, + + jobcallname=#{jobcallname}, + JOBLEVEL=#{joblevel}, @@ -1148,6 +1165,7 @@ ,e.DEGREE ,e.USEKIND ,e.JOBCALL + ,job.NAME as jobcallname ,e.ACCUMFUNDACCOUNT ,e.BIRTHPLACE ,e.FOLK @@ -1177,6 +1195,7 @@ left join hrmdepartment d on e.departmentid = d.id left join HrmSubCompany c on e.SUBCOMPANYID1=c.id left join hrmjobtitles j on e.jobtitle = j.id + left join hrmjobcall job on e.jobcall=job.id \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryEmployeeService.java b/src/com/engine/salary/service/SalaryEmployeeService.java index f3b19a040..e5b25c281 100644 --- a/src/com/engine/salary/service/SalaryEmployeeService.java +++ b/src/com/engine/salary/service/SalaryEmployeeService.java @@ -9,6 +9,7 @@ import com.engine.salary.entity.hrm.dto.EmployeeInfoExpandDTO; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; +import java.util.Date; import java.util.List; import java.util.Map; @@ -181,4 +182,6 @@ public interface SalaryEmployeeService { * @return */ JobCallInfo getJobCallInfoById(Long jobCallId); + + List snapshot(List employeeIds, Date snapshotTime); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 90391abd4..fbb5851f7 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -7,7 +7,6 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.config.SalaryElogConfig; -import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryacct.bo.SalaryAcctConfig; import com.engine.salary.entity.salaryacct.bo.SalaryAcctEmployeeBO; @@ -154,24 +153,24 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct @Override public void addFromReduce(SalaryAcctEmployeeAddParam addParam) { - ValidUtil.doValidator(addParam); - // 查询薪资核算记录 - SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(addParam.getSalaryAcctRecordId()); - if (Objects.isNull(salaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); - } - // 查询环比减少的薪资核算人员 - List salaryAcctEmployeePOS = listByIds(addParam.getIds()); - if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98830, "薪资核算人员不存在或已被删除")); - } - // 添加薪资核算人员 - Date now = new Date(); - List newSalaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().map(salaryAcctEmployeePO -> new SalaryAcctEmployeePO() - .setSalaryAcctRecordId(salaryAcctRecordPO.getId()).setSalarySobId(salaryAcctRecordPO.getSalarySobId()).setSalaryMonth(salaryAcctRecordPO.getSalaryMonth()).setEmployeeId(salaryAcctEmployeePO.getEmployeeId()).setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()).setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).setCreateTime(now).setUpdateTime(now).setCreator((long) user.getUID()).setDeleteType(0)).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(newSalaryAcctEmployeePOS)) { - batchSave(newSalaryAcctEmployeePOS); - } +// ValidUtil.doValidator(addParam); +// // 查询薪资核算记录 +// SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(addParam.getSalaryAcctRecordId()); +// if (Objects.isNull(salaryAcctRecordPO)) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); +// } +// // 查询环比减少的薪资核算人员 +// List salaryAcctEmployeePOS = listByIds(addParam.getIds()); +// if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { +// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98830, "薪资核算人员不存在或已被删除")); +// } +// // 添加薪资核算人员 +// Date now = new Date(); +// List newSalaryAcctEmployeePOS = salaryAcctEmployeePOS.stream().map(salaryAcctEmployeePO -> new SalaryAcctEmployeePO() +// .setSalaryAcctRecordId(salaryAcctRecordPO.getId()).setSalarySobId(salaryAcctRecordPO.getSalarySobId()).setSalaryMonth(salaryAcctRecordPO.getSalaryMonth()).setEmployeeId(salaryAcctEmployeePO.getEmployeeId()).setTaxAgentId(salaryAcctEmployeePO.getTaxAgentId()).setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).setCreateTime(now).setUpdateTime(now).setCreator((long) user.getUID()).setDeleteType(0)).collect(Collectors.toList()); +// if (CollectionUtils.isNotEmpty(newSalaryAcctEmployeePOS)) { +// batchSave(newSalaryAcctEmployeePOS); +// } } @Override @@ -431,6 +430,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98769, "个税扣缴义务人下无该人员档案信息或薪资缴纳日期不在薪资周期内")); } + + //替换快照数据 + shotEmpData(salaryAcctEmployeePOS, salarySobCycleDTO.getSalaryCycleFromDate()); batchSave(salaryAcctEmployeePOS); @@ -447,6 +449,24 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext); } + private void shotEmpData(List salaryAcctEmployeePOS, Date shotTime) { + List employees = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); + List snapshot = getSalaryEmployeeService(user).snapshot(employees, shotTime); + Map shotEmpMap = SalaryEntityUtil.convert2Map(snapshot, DataCollectionEmployee::getEmployeeId); + salaryAcctEmployeePOS.forEach(salaryAcctEmployeePO -> { + DataCollectionEmployee shotEmp = shotEmpMap.getOrDefault(salaryAcctEmployeePO.getEmployeeId(), new DataCollectionEmployee()); + salaryAcctEmployeePO.setDepartmentId(shotEmp.getDepartmentId()); + salaryAcctEmployeePO.setDepartmentName(shotEmp.getDepartmentName()); + salaryAcctEmployeePO.setJobcall(shotEmp.getJobcall()); + salaryAcctEmployeePO.setJobcallId(shotEmp.getJobcallId()); + salaryAcctEmployeePO.setJobtitleId(shotEmp.getJobtitleId()); + salaryAcctEmployeePO.setJobtitleName(shotEmp.getJobtitleName()); + salaryAcctEmployeePO.setSubcompanyId(shotEmp.getSubcompanyid()); + salaryAcctEmployeePO.setSubcompanyName(shotEmp.getSubcompanyName()); + salaryAcctEmployeePO.setStatus(shotEmp.getStatus()); + salaryAcctEmployeePO.setAccountType(shotEmp.getAccountType()); + }); + } @Override public void batchSave(Collection salaryAcctEmployeePOS) { if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { @@ -560,6 +580,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 保存薪资核算人员 if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOS)) { + shotEmpData(salaryAcctEmployeePOS, salarySobCycleDTO.getSalaryCycleFromDate()); batchSave(salaryAcctEmployeePOS); } } @@ -606,6 +627,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct List delIds = oldEmps.stream().filter(po -> !newEmpMap.containsKey(po.getTaxAgentId() + "_" + po.getEmployeeId())).map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); deleteByIds(delIds); + shotEmpData(addEmps, salarySobCycleDTO.getSalaryCycleFromDate()); batchSave(addEmps); } @@ -762,7 +784,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct list = list.stream().filter(po -> param.getEmployee().contains(po.getEmployeeId())).collect(Collectors.toList()); } - if(isRealOrg){ + if (isRealOrg) { Set empIds = SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); list = list.stream().filter(po -> empIds.contains(po.getEmployeeId())).collect(Collectors.toList()); } @@ -788,16 +810,16 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct throw new SalaryRunTimeException("锁定状态异常!"); } - if (updateParam.getLockStatus() == LockStatusEnum.LOCK){ + if (updateParam.getLockStatus() == LockStatusEnum.LOCK) { SalaryAcctConfig salaryAcctSobConfig = getSalaryAcctSobConfigService(user).getSalaryAcctConfig(updateParam.getSalaryAcctRecordId()); List salarySobItems = salaryAcctSobConfig.getSalarySobItems(); - List itemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId,Collectors.toList()); + List itemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId, Collectors.toList()); salaryAcctEmployees.forEach(salaryAcctEmployeePO -> { salaryAcctEmployeePO.setLockItems(itemIds); lock(salaryAcctEmployeePO); }); - }else { + } else { salaryAcctEmployees.forEach(salaryAcctEmployeePO -> { salaryAcctEmployeePO.setLockItems(new ArrayList<>()); lock(salaryAcctEmployeePO); diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 42b555cdb..9dc5673e1 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -1,5 +1,6 @@ package com.engine.salary.service.impl; +import cn.hutool.core.util.NumberUtil; import com.alibaba.fastjson.JSON; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; @@ -19,6 +20,7 @@ import com.engine.salary.entity.hrm.po.HrmSnapshotPO; import com.engine.salary.entity.salarysob.bo.SalarySobRangeBO; import com.engine.salary.entity.salarysob.param.SalarySobRangeEmpQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobRangePO; +import com.engine.salary.enums.AccountTypeEnum; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; @@ -620,7 +622,49 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee return SalaryI18nUtil.i18n(getEmployMapper().getJobCallInfoById(jobCallId)); } - public List snapshot(List employeeIds, Date snapshotTime) { - return getHrmSnapshotMapper().snapshot(employeeIds, snapshotTime); + public List snapshot(List employeeIds, Date snapshotTime) { + + List currentEmployees = getEmployeeByIdsAll(employeeIds); + Map currentEmployeeMap = SalaryEntityUtil.convert2Map(currentEmployees, DataCollectionEmployee::getEmployeeId); + + List employees = employeeIds.stream() + .map(employeeId -> { + + List snapshot = getHrmSnapshotMapper().snapshot(employeeId, snapshotTime); + + return snapshot.stream().findFirst().map(hrmSnapshotPO -> DataCollectionEmployee. + builder() + .employeeId(employeeId) + .username(hrmSnapshotPO.getLastname()) + .departmentName(hrmSnapshotPO.getDepartmentname()) + .departmentId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getDepartmentid()))) + .subcompanyName(hrmSnapshotPO.getSubcompanyname()) + .subcompanyid(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getSubcompanyid1()))) + .costcenterId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getCostcenterid()))) + .locationId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getLocationid()))) + .jobtitleName(hrmSnapshotPO.getJobtitlename()) + .jobtitleId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobtitle()))) + .companystartdate(hrmSnapshotPO.getCompanystartdate()) + .mobile(hrmSnapshotPO.getMobile()) +// .dismissdate() + .status(Util.null2String(hrmSnapshotPO.getStatus())) + .statusName(UserStatusEnum.getDefaultLabelByValue(NumberUtils.toInt(Util.null2String(hrmSnapshotPO.getStatus()), 1))) + .workcode(hrmSnapshotPO.getWorkcode()) + .sex(hrmSnapshotPO.getSex()) + .email(hrmSnapshotPO.getEmail()) + .telephone(hrmSnapshotPO.getTelephone()) + .jobcall(hrmSnapshotPO.getJobcallname()) + .jobcallId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobcall()))) + .birthday(hrmSnapshotPO.getBirthday()) + .workYear(hrmSnapshotPO.getWorkyear() == null ? 0.00 : hrmSnapshotPO.getWorkyear().doubleValue()) + .companyWorkYear(hrmSnapshotPO.getCompanyworkyear() == null ? 0.00 : hrmSnapshotPO.getCompanyworkyear().doubleValue()) + .idNo(hrmSnapshotPO.getCertificatenum()) + .accountTypeName(AccountTypeEnum.getDefaultLabelByValue(hrmSnapshotPO.getAccounttype())) + .accountType(hrmSnapshotPO.getAccounttype()) + .build()) + .orElse(currentEmployeeMap.get(employeeId)); + }).collect(Collectors.toList()); + + return SalaryI18nUtil.i18nList(employees); } } diff --git a/src/com/engine/salary/timer/HrmSnapshotJob.java b/src/com/engine/salary/timer/HrmSnapshotJob.java index 5a256371a..ac0a7a091 100644 --- a/src/com/engine/salary/timer/HrmSnapshotJob.java +++ b/src/com/engine/salary/timer/HrmSnapshotJob.java @@ -6,6 +6,7 @@ import com.engine.salary.mapper.hrm.HrmSnapshotMapper; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; +import lombok.extern.slf4j.Slf4j; import weaver.hrm.User; import weaver.interfaces.schedule.BaseCronJob; @@ -13,9 +14,10 @@ import java.time.LocalDate; import java.util.Date; import java.util.List; - +@Slf4j public class HrmSnapshotJob extends BaseCronJob { + //指定筷子时间 private String appointSnapshotTime; private HrmSnapshotMapper getHrmSnapshotMapper() { @@ -28,24 +30,25 @@ public class HrmSnapshotJob extends BaseCronJob { user.setUid(1); user.setLoginid("sysadmin"); - List hrmSnapshotPOS = getHrmSnapshotMapper().currentEmpData(); + try { + List hrmSnapshotPOS = getHrmSnapshotMapper().currentEmpData(); - Date snapshotTime = StrUtil.isNotBlank(appointSnapshotTime) && SalaryDateUtil.checkDay(appointSnapshotTime) ? SalaryDateUtil.dateStrToLocalDate(appointSnapshotTime) : SalaryDateUtil.localDateToDate(LocalDate.now()); + Date snapshotTime = StrUtil.isNotBlank(appointSnapshotTime) && SalaryDateUtil.checkDay(appointSnapshotTime) ? SalaryDateUtil.dateStrToLocalDate(appointSnapshotTime) : SalaryDateUtil.localDateToDate(LocalDate.now()); - //先删除当日快照 - getHrmSnapshotMapper().deleteBySnapshotTime(snapshotTime); + //先删除当日快照 + getHrmSnapshotMapper().deleteBySnapshotTime(snapshotTime); - hrmSnapshotPOS.forEach(hrmSnapshotPO -> { + hrmSnapshotPOS.forEach(hrmSnapshotPO -> { - hrmSnapshotPO.setId(IdGenerator.generate()); - hrmSnapshotPO.setSnapshotTime(snapshotTime); + hrmSnapshotPO.setId(IdGenerator.generate()); + hrmSnapshotPO.setSnapshotTime(snapshotTime); - getHrmSnapshotMapper().insertIgnoreNull(hrmSnapshotPO); + getHrmSnapshotMapper().insertIgnoreNull(hrmSnapshotPO); - }); - - - System.out.println(hrmSnapshotPOS); + }); + }catch (Exception e){ + log.error("生成快照失败", e); + } } } From 5b8562edb694301f7146c103654fb8bbeb3ee882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 6 Dec 2024 16:00:53 +0800 Subject: [PATCH 04/22] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salarysob/bo/SalarySobCycleBO.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java index 0111dbece..37a505a31 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobCycleBO.java @@ -4,6 +4,7 @@ import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.enums.SalaryCycleTypeEnum; +import com.engine.salary.util.SalaryDateUtil; import java.time.*; import java.util.Date; @@ -30,7 +31,8 @@ public class SalarySobCycleBO { if (salarySob == null) { return null; } - return SalarySobCycleDTO.builder() + + SalarySobCycleDTO salarySobCycleDTO = SalarySobCycleDTO.builder() .salarySobId(salarySob.getId()) .salaryMonth(salaryMonth) .taxCycle(buildCycle(salaryMonth, salarySob.getTaxCycleType())) @@ -38,6 +40,18 @@ public class SalarySobCycleBO { .salaryCycle(buildCycleDateRange(salaryMonth, salarySob.getSalaryCycleType(), salarySob.getSalaryCycleFromDay())) .attendCycle(buildCycleDateRange(salaryMonth, salarySob.getAttendCycleType(), salarySob.getAttendCycleFromDay())) .build(); + + salarySobCycleDTO.setSalaryDate(SalaryDateUtil.toDate(salarySobCycleDTO.getSalaryMonth(), 1)); + salarySobCycleDTO.setTaxDate(SalaryDateUtil.toDate(salarySobCycleDTO.getTaxCycle(), 1)); + salarySobCycleDTO.setSocialSecurityDate(SalaryDateUtil.toDate(salarySobCycleDTO.getSocialSecurityCycle(), 1)); + LocalDateRange salaryCycle = salarySobCycleDTO.getSalaryCycle(); + salarySobCycleDTO.setSalaryCycleFromDate(salaryCycle.getFromDate()); + salarySobCycleDTO.setSalaryCycleEndDate(salaryCycle.getEndDate()); + LocalDateRange attendCycle = salarySobCycleDTO.getAttendCycle(); + salarySobCycleDTO.setAttendCycleFromDate(attendCycle.getFromDate()); + salarySobCycleDTO.setAttendCycleEndDate(attendCycle.getEndDate()); + + return salarySobCycleDTO; } /** From 0b6a832c4fb2bdebb5a09efd3d6fcdc1a1a66d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 6 Dec 2024 16:05:51 +0800 Subject: [PATCH 05/22] =?UTF-8?q?=E7=BB=84=E7=BB=87=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryEmployeeServiceImpl.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java index 9dc5673e1..1dedb0bfb 100644 --- a/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryEmployeeServiceImpl.java @@ -637,13 +637,13 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee .employeeId(employeeId) .username(hrmSnapshotPO.getLastname()) .departmentName(hrmSnapshotPO.getDepartmentname()) - .departmentId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getDepartmentid()))) + .departmentId(hrmSnapshotPO.getDepartmentid() == null ? null : NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getDepartmentid()))) .subcompanyName(hrmSnapshotPO.getSubcompanyname()) - .subcompanyid(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getSubcompanyid1()))) - .costcenterId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getCostcenterid()))) - .locationId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getLocationid()))) + .subcompanyid(hrmSnapshotPO.getSubcompanyid1() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getSubcompanyid1()))) + .costcenterId(hrmSnapshotPO.getCostcenterid() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getCostcenterid()))) + .locationId(hrmSnapshotPO.getLocationid() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getLocationid()))) .jobtitleName(hrmSnapshotPO.getJobtitlename()) - .jobtitleId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobtitle()))) + .jobtitleId(hrmSnapshotPO.getJobtitle() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobtitle()))) .companystartdate(hrmSnapshotPO.getCompanystartdate()) .mobile(hrmSnapshotPO.getMobile()) // .dismissdate() @@ -654,10 +654,10 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee .email(hrmSnapshotPO.getEmail()) .telephone(hrmSnapshotPO.getTelephone()) .jobcall(hrmSnapshotPO.getJobcallname()) - .jobcallId(NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobcall()))) + .jobcallId(hrmSnapshotPO.getJobcall() == null ? null :NumberUtil.parseLong(Util.null2String(hrmSnapshotPO.getJobcall()))) .birthday(hrmSnapshotPO.getBirthday()) - .workYear(hrmSnapshotPO.getWorkyear() == null ? 0.00 : hrmSnapshotPO.getWorkyear().doubleValue()) - .companyWorkYear(hrmSnapshotPO.getCompanyworkyear() == null ? 0.00 : hrmSnapshotPO.getCompanyworkyear().doubleValue()) + .workYear(hrmSnapshotPO.getWorkyear() == null ? null : hrmSnapshotPO.getWorkyear().doubleValue()) + .companyWorkYear(hrmSnapshotPO.getCompanyworkyear() == null ? null : hrmSnapshotPO.getCompanyworkyear().doubleValue()) .idNo(hrmSnapshotPO.getCertificatenum()) .accountTypeName(AccountTypeEnum.getDefaultLabelByValue(hrmSnapshotPO.getAccounttype())) .accountType(hrmSnapshotPO.getAccounttype()) From 7d346aa4b0853261674dffb20db4490323380021 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 6 Dec 2024 16:33:52 +0800 Subject: [PATCH 06/22] =?UTF-8?q?fix=E9=9D=9E=E7=B3=BB=E7=BB=9F=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E5=AF=BC=E5=85=A5=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E6=97=B6=EF=BC=8Cemployeetype=E4=B8=BAnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index d32117615..e368c3d2d 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -782,6 +782,7 @@ public class SalaryArchiveExcelBO extends Service { // .modifier(importHandleParam.getCurrentEmployeeId()) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .employeeType(importHandleParam.isExtEmp() ? 1 : 0) .build(); // 定薪action 保持状态为待定薪 if (importHandleParam.isInit() && importHandleParam.getKeepStatus() != null && importHandleParam.getKeepStatus().equals(Boolean.TRUE)) { From 4100ba1331ec345edf5e8c8da65db06f49afbe79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Dec 2024 13:21:25 +0800 Subject: [PATCH 07/22] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=BF=AB=E7=85=A7?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryAcctEmployeeBO.java | 20 +++---- .../impl/SalaryAcctEmployeeServiceImpl.java | 27 ++++++--- .../sys/constant/SalarySysConstant.java | 10 ++++ .../salary/sys/enums/ShotTimeTypeEnum.java | 57 +++++++++++++++++++ 4 files changed, 97 insertions(+), 17 deletions(-) create mode 100644 src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java index 09505ef25..a8dbc514e 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctEmployeeBO.java @@ -103,16 +103,16 @@ public class SalaryAcctEmployeeBO { .employeeId(emp.getEmployeeId()) .employeeType(emp.isExtEmp() ? 1 : 0) .taxAgentId(taxAgentId) -// .departmentId(emp.getDepartmentId()) -// .departmentName(emp.getDepartmentName()) -// .jobcall(emp.getJobcall()) -// .jobcallId(emp.getJobcallId()) -// .jobtitleId(emp.getJobtitleId()) -// .jobtitleName(emp.getJobtitleName()) -// .subcompanyId(emp.getSubcompanyid()) -// .subcompanyName(emp.getSubcompanyName()) -// .status(emp.getStatus()) -// .accountType(emp.getAccountType()) + .departmentId(emp.getDepartmentId()) + .departmentName(emp.getDepartmentName()) + .jobcall(emp.getJobcall()) + .jobcallId(emp.getJobcallId()) + .jobtitleId(emp.getJobtitleId()) + .jobtitleName(emp.getJobtitleName()) + .subcompanyId(emp.getSubcompanyid()) + .subcompanyName(emp.getSubcompanyName()) + .status(emp.getStatus()) + .accountType(emp.getAccountType()) .creator(employeeId) .createTime(now) .updateTime(now) diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index fbb5851f7..8f30feb53 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -27,6 +27,7 @@ import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.report.entity.param.SalaryStatisticsReportDataQueryParam; import com.engine.salary.service.*; +import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; @@ -431,9 +432,8 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98769, "个税扣缴义务人下无该人员档案信息或薪资缴纳日期不在薪资周期内")); } - //替换快照数据 - shotEmpData(salaryAcctEmployeePOS, salarySobCycleDTO.getSalaryCycleFromDate()); - batchSave(salaryAcctEmployeePOS); + //保存核算人员 + saveAcctEmployeePOS(salaryAcctEmployeePOS, salarySobCycleDTO); // 记录日志 @@ -449,6 +449,19 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext); } + private void saveAcctEmployeePOS(List salaryAcctEmployeePOS, SalarySobCycleDTO sobCycle) { + + boolean shotEmpBtn = "1".equals(getSalarySysConfService(user).getValueByCode(SalarySysConstant.SHOT_EMP_BTN)); + + //替换快照数据 + if (shotEmpBtn) { + String valueByCode = getSalarySysConfService(user).getValueByCode(SalarySysConstant.SHOT_EMP_TIME_TYPE); + shotEmpData(salaryAcctEmployeePOS, sobCycle.getSalaryCycleFromDate()); + } + //保存 + batchSave(salaryAcctEmployeePOS); + } + private void shotEmpData(List salaryAcctEmployeePOS, Date shotTime) { List employees = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getEmployeeId, Collectors.toList()); List snapshot = getSalaryEmployeeService(user).snapshot(employees, shotTime); @@ -467,6 +480,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct salaryAcctEmployeePO.setAccountType(shotEmp.getAccountType()); }); } + @Override public void batchSave(Collection salaryAcctEmployeePOS) { if (CollectionUtils.isEmpty(salaryAcctEmployeePOS)) { @@ -580,8 +594,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 保存薪资核算人员 if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOS)) { - shotEmpData(salaryAcctEmployeePOS, salarySobCycleDTO.getSalaryCycleFromDate()); - batchSave(salaryAcctEmployeePOS); + saveAcctEmployeePOS(salaryAcctEmployeePOS, salarySobCycleDTO); } } @@ -627,8 +640,8 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct List delIds = oldEmps.stream().filter(po -> !newEmpMap.containsKey(po.getTaxAgentId() + "_" + po.getEmployeeId())).map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); deleteByIds(delIds); - shotEmpData(addEmps, salarySobCycleDTO.getSalaryCycleFromDate()); - batchSave(addEmps); + + saveAcctEmployeePOS(addEmps, salarySobCycleDTO); } diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index b5d5384ea..4f5966095 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -204,4 +204,14 @@ public class SalarySysConstant { * 审批流程发起后允许修改核算数据 */ public static final String APPROVAL_CAN_EDIT_RESULT_STATUS = "APPROVAL_CAN_EDIT_RESULT_STATUS"; + + /** + * 是否采用组织快照,0:关闭 1:开启 + */ + public static final String SHOT_EMP_BTN = "SHOT_EMP_BTN"; + + /** + * 快照时间点 + */ + public static final String SHOT_EMP_TIME_TYPE = "SHOT_EMP_TIME_TYPE"; } diff --git a/src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java b/src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java new file mode 100644 index 000000000..a375c2314 --- /dev/null +++ b/src/com/engine/salary/sys/enums/ShotTimeTypeEnum.java @@ -0,0 +1,57 @@ +package com.engine.salary.sys.enums; + +import com.engine.salary.enums.BaseEnum; +import org.apache.commons.lang3.StringUtils; + +/** + * 快照时间点类型 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public enum ShotTimeTypeEnum implements BaseEnum { + + salaryFirstDate("salaryFirstDate", "薪资所属月第一天", 1), + salaryLastDate("salaryLastDate", "薪资所属月最后一天", 1), + salaryCycleFromDate("salaryCycleFromDate", "薪资周期起始日期", 1), + salaryCycleEndDate("salaryCycleEndDate", "薪资周期结束日期", 1); + + private String value; + + private String defaultLabel; + + private int labelId; + + + ShotTimeTypeEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + @Override + public String getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + @Override + public Integer getLabelId() { + return labelId; + } + + public static ShotTimeTypeEnum parseByValue(String value) { + for (ShotTimeTypeEnum e : ShotTimeTypeEnum.values()) { + if (StringUtils.equals(e.getValue(), value)) { + return e; + } + } + return salaryCycleFromDate; + } +} From 7c1e314f2ca4a9f9a68ea6fdc234e2468d3bfba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Dec 2024 14:20:52 +0800 Subject: [PATCH 08/22] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=BF=AB=E7=85=A7?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctEmployeeServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 8f30feb53..3932486e6 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -455,7 +455,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct //替换快照数据 if (shotEmpBtn) { - String valueByCode = getSalarySysConfService(user).getValueByCode(SalarySysConstant.SHOT_EMP_TIME_TYPE); +// String valueByCode = getSalarySysConfService(user).getValueByCode(SalarySysConstant.SHOT_EMP_TIME_TYPE); shotEmpData(salaryAcctEmployeePOS, sobCycle.getSalaryCycleFromDate()); } //保存 From d52e13f09e9c08f1ce4db15a9ab3b0be0b677c76 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 9 Dec 2024 14:34:57 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=A2=9E=E5=8A=A0=E8=AF=81=E4=BB=B6=E5=8F=B7?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/service/impl/SalaryStatisticsEmployeeServiceImpl.java | 1 + src/com/engine/salary/service/impl/SettingServiceImpl.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 808c6620e..1b45b4881 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -282,6 +282,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala map.put("jobTitle", Util.null2String(emp.getJobtitleName())); map.put("status", Util.null2String(NumberUtil.isNumber(emp.getStatus()) ? SalaryEmployeeStatusEnum.parseByValue(Integer.valueOf(emp.getStatus())).getDefaultLabel() : null)); map.put("workCode", Util.null2String(emp.getWorkcode())); + map.put("idNo", Util.null2String(emp.getIdNo())); map.put("companystartdate", Util.null2String(emp.getCompanystartdate())); // IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(Integer.parseInt(se.getIncomeCategory())); diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 0cea169f8..16771e0ea 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -183,6 +183,7 @@ public class SettingServiceImpl extends Service implements SettingService { columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "岗位"), "jobTitle")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "员工状态"), "status")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "工号"), "workCode")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "证件号码"), "idNo")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "入职日期"), "companystartdate")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "次数"), "acctTimes").setDisplay(WeaBoolAttr.FALSE)); if (StrUtil.isNotBlank(param.getName())) { From b3dcafa6f12095a81840453a8a3fc684194575ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Dec 2024 15:12:33 +0800 Subject: [PATCH 10/22] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/WEB-INF/prop/hrmSalary.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties index 60b4e6089..f60ec7a4f 100644 --- a/resource/WEB-INF/prop/hrmSalary.properties +++ b/resource/WEB-INF/prop/hrmSalary.properties @@ -1,5 +1,5 @@ log=false defaultCloseNonStandard149=true AESEncryptScrect=990EB004A1C862721C1513AE90038C9E -version=2.17.1.2411.01 +version=2.18.1.2412.01 openFormulaForcedEditing=false \ No newline at end of file From 77f7640a2413b9f3dc499a97bbda53ceaf719db4 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 9 Dec 2024 17:13:29 +0800 Subject: [PATCH 11/22] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=8F=B0=E8=B4=A6?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1key=E5=A2=9E=E5=8A=A0=E4=B9=89?= =?UTF-8?q?=E5=8A=A1=E4=BA=BAid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIAccountServiceImpl.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index cafeb921a..7fb64e893 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -4915,7 +4915,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public void siAccounting(AccountParam param) { //福利核算进度 - ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth()); + ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { return; } @@ -4998,10 +4998,10 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { .setProgress(BigDecimal.ZERO) .setStatus(true) .setMessage(StringUtils.EMPTY); - getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), initProgress); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), initProgress); if (CollectionUtils.isEmpty(ids)) { - getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), true); + getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), true); return; } @@ -5017,11 +5017,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { getSIAccountDetailTempMapper().batchDelByEmpIdsAndMonthAndPayOrg(part, param.getBillMonth(), param.getPaymentOrganization()); }); log.info("更新福利核算进度······"); - getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), true); + getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), true); log.info("福利核算进度完成!"); } catch (Exception e) { log.error("account run fail", e); - getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), SalaryI18nUtil.getI18nLabel(0, "福利核算出错") + ": " + e.getMessage()); + getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), SalaryI18nUtil.getI18nLabel(0, "福利核算出错") + ": " + e.getMessage()); List list = Lists.newArrayList(getInsuranceAccountBatchMapper().getByBillMonth(param.getBillMonth(), param.getPaymentOrganization())); if (CollectionUtils.isNotEmpty(list)) { @@ -5111,11 +5111,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (count % 50 == 0 || count >= ids.size()) { if (count >= ids.size()) { - getSalaryAcctProgressService(user).updateProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth, BigDecimal.valueOf(0.99), false); - log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth)); + getSalaryAcctProgressService(user).updateProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization, BigDecimal.valueOf(0.99), false); + log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization)); } else { - getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + billMonth, count >= ids.size() ? count % 50 : 50); - log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth)); + getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization, count >= ids.size() ? count % 50 : 50); + log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth) + "_" + paymentOrganization); } } @@ -5738,7 +5738,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { } } catch (Exception e) { log.error("福利核算数据处理失败", e); - getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), SalaryI18nUtil.getI18nLabel(0, "福利核算出错") + ": " + e.getMessage()); + getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), SalaryI18nUtil.getI18nLabel(0, "福利核算出错") + ": " + e.getMessage()); throw e; } } From c872fc69ba782978f0b791c74120a7f6b02df9b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 9 Dec 2024 17:13:45 +0800 Subject: [PATCH 12/22] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/wrapper/SalarySobItemWrapper.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java index e1ed86869..07006c6a4 100644 --- a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java @@ -75,9 +75,7 @@ public class SalarySobItemWrapper extends Service { Integer searchPageSize = queryParam.getPageSize(); Integer searchCurrent = queryParam.getCurrent(); - PageInfo page = getSalaryItemService(user).listPageByParam(queryParam); - - List salaryItemList = page.getList(); + List salaryItemList = getSalaryItemService(user).listByParam(queryParam); Set taxAgentIds = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()) .stream().map(TaxAgentPO::getId) @@ -95,22 +93,23 @@ public class SalarySobItemWrapper extends Service { } }) .collect(Collectors.toList()); - salaryItemList = SalaryPageUtil.buildPage(searchCurrent, searchPageSize, salaryItemList).getList(); + //最终返回的分页对象 PageInfo dtoPage = new PageInfo<>(SalaryItemSobListDTO.class); dtoPage.setPageSize(searchPageSize); dtoPage.setPageNum(searchCurrent); - dtoPage.setTotal(page.getTotal()); - if (CollectionUtils.isNotEmpty(salaryItemList)) { + dtoPage.setTotal(salaryItemList.size()); + List list = SalaryPageUtil.buildPage(searchCurrent, searchPageSize, salaryItemList).getList(); + if (CollectionUtils.isNotEmpty(list)) { // 查询公式 - Set formulaIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getFormulaId); + Set formulaIds = SalaryEntityUtil.properties(list, SalaryItemPO::getFormulaId); List expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds); // 查询系统薪资项目 - Set sysSalaryItemIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getSysSalaryItemId); + Set sysSalaryItemIds = SalaryEntityUtil.properties(list, SalaryItemPO::getSysSalaryItemId); List sysSalaryItemPOS = getSysSalaryItemService(user).listByIds(sysSalaryItemIds); // 转换成薪资项目列表dto - dtoPage.setList(SalaryItemBO.convert2itemSobListDTO(salaryItemList, expressFormulas, sysSalaryItemPOS)); + dtoPage.setList(SalaryItemBO.convert2itemSobListDTO(list, expressFormulas, sysSalaryItemPOS)); } return dtoPage; From 89ca47d65e861639da3544b3185cfbf5e1ffd297 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 10 Dec 2024 09:12:35 +0800 Subject: [PATCH 13/22] =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SIAccountServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 7fb64e893..83a8b57f3 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -5115,7 +5115,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization)); } else { getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization, count >= ids.size() ? count % 50 : 50); - log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth) + "_" + paymentOrganization); + log.info("更新福利核算进度,当前进度为:{}", getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + billMonth + "_" + paymentOrganization)); } } From 1715b58badfb4b3d2510af5ef9980b842ea5ba07 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 10 Dec 2024 11:00:05 +0800 Subject: [PATCH 14/22] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E8=BF=9B=E5=BA=A6=E6=9D=A1=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIAccountServiceImpl.java | 44 ++++++++++++++++--- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 83a8b57f3..75ca5f92d 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -650,6 +650,23 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { AccountParam accountParam = new AccountParam(); accountParam.setBillMonth(param.getBillMonth()); accountParam.setIds(collect); + + //福利核算进度 + ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); + if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { + return; + } + // 初始化进度 + ProgressDTO initProgress = new ProgressDTO() + .setTitle(SalaryI18nUtil.getI18nLabel(0, "核算中")) + .setTitleLabelId(97515L) + .setTotalQuantity(2000) + .setCalculatedQuantity(NumberUtils.INTEGER_ZERO) + .setProgress(BigDecimal.ZERO) + .setStatus(true) + .setMessage(StringUtils.EMPTY); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), initProgress); + siAccounting(accountParam); } @@ -4891,6 +4908,23 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { // AccountParam selectParam = new AccountParam(); // selectParam.setBillMonth(param.getBillMonth()); // selectParam.setPaymentOrganization(param.getPaymentOrganization()); + + //福利核算进度 + ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); + if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { + return String.valueOf(user.getUID()); + } + // 初始化进度 + ProgressDTO initProgress = new ProgressDTO() + .setTitle(SalaryI18nUtil.getI18nLabel(0, "核算中")) + .setTitleLabelId(97515L) + .setTotalQuantity(2000) + .setCalculatedQuantity(NumberUtils.INTEGER_ZERO) + .setProgress(BigDecimal.ZERO) + .setStatus(true) + .setMessage(StringUtils.EMPTY); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization(), initProgress); + ExecutorService taskExecutor = Executors.newCachedThreadPool(); taskExecutor.execute(() -> { siAccounting(param); @@ -4914,11 +4948,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public void siAccounting(AccountParam param) { - //福利核算进度 - ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); - if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { - return; - } + // //福利核算进度 + // ProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth() + "_" + param.getPaymentOrganization()); + // if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.isStatus() && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { + // return; + // } log.info("开始核算,当前操作人为:{}", user.getLastname()); log.info("核算时间:{}, 核算月份:{}, 个税扣缴义务人:{}, 是否首次核算:{}", new Date(), param.getBillMonth(), param.getPaymentOrganization(), param.isFlag()); From b769e762ca1d3e1317bf94ec9b516fb47e30411d Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 10 Dec 2024 11:50:20 +0800 Subject: [PATCH 15/22] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E5=8F=B0=E8=B4=A6=E9=9D=9E=E7=B3=BB=E7=BB=9F=E4=BA=BA=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SIAccountServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 75ca5f92d..18d48fccd 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -5077,6 +5077,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (!isFirstFlag) { // 不是首次核算,需要把社保历史数据取出 historyDetailData.addAll(getInsuranceAccountDetailMapper().list(InsuranceAccountDetailParam.builder().billMonth(billMonth).paymentOrganization(paymentOrganization.toString()).employeeIds(ids).build())); + historyDetailData.addAll(getInsuranceAccountDetailMapper().extList(InsuranceAccountDetailParam.builder().billMonth(billMonth).paymentOrganization(paymentOrganization.toString()).employeeIds(ids).build())); } else { employeeList = getSalaryEmployeeService(user).listByIds(ids); } From b8fdc4dde61c6197e74cbdf52ac185d4b18ac460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 10 Dec 2024 16:25:20 +0800 Subject: [PATCH 16/22] =?UTF-8?q?=E9=9A=90=E8=97=8F=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalaryAcctExcelServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 97e872736..ce89f8196 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -521,6 +521,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // 查询薪资核算记录所用的薪资账套的薪资项目副本 List salarySobItems = config.getSalarySobItems(); + salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getItemHide() == null || salarySobItemPO.getItemHide() == 0).collect(Collectors.toList()); Set salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId); // 查询薪资项目 List salaryItems = getSalaryItemService(user).listByIds(salaryItemIds); @@ -615,6 +616,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // 查询薪资核算记录所用的薪资账套的薪资项目副本 List salarySobItems = salaryAcctConfig.getSalarySobItems(); + salarySobItems = salarySobItems.stream().filter(salarySobItemPO -> salarySobItemPO.getItemHide() == null || salarySobItemPO.getItemHide() == 0).collect(Collectors.toList()); Set salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId); // 查询薪资项目 List salaryItems = getSalaryItemService(user).listByIds(salaryItemIds); From bd3b815bcf29db5d4481520d89e581fbcca04fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 11 Dec 2024 11:04:42 +0800 Subject: [PATCH 17/22] =?UTF-8?q?=E9=9A=90=E8=97=8F=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java index 65d771bdf..c2b8fd33c 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java @@ -77,14 +77,12 @@ public class SalaryAcctRecordPO { * 回算(上次核算的薪资核算记录id) */ @Deprecated -// //备用字段1", ignore = true) private Long superId; /** * 回算(最原始的那次薪资核算记录id) */ @Deprecated -// //备用字段2", ignore = true) private Long rootId; /** From 4ddb123b3d56191637714558675fe653b29eeb25 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 11 Dec 2024 15:22:08 +0800 Subject: [PATCH 18/22] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=B7=A5=E8=B5=84=E5=8D=95=E5=88=97=E8=A1=A8=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salaryBill/dto/SalaryMySalaryBillListDTO.java | 2 ++ .../engine/salary/service/impl/SalarySendServiceImpl.java | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java index 0cce85393..8824004c6 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryMySalaryBillListDTO.java @@ -34,5 +34,7 @@ public class SalaryMySalaryBillListDTO { private Long employeeId; + private String salaryCode; + } diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 6bce71730..0b394d56a 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -17,6 +17,7 @@ import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryArchiveConstant; import com.engine.salary.constant.SalaryItemConstant; import com.engine.salary.constant.SalaryTemplateSalaryItemSetGroupConstant; +import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.DataCollectionEmployee; @@ -822,7 +823,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService } return true; }) - .peek(dto -> dto.setEmployeeId((long) user.getUID())) + .peek(dto -> { + dto.setEmployeeId((long) user.getUID()); + dto.setSalaryCode(AESEncryptUtil.encrypt4SalaryBill(String.valueOf(user.getUID()))); + }) .collect(Collectors.toList()); PageInfo pageInfo = new PageInfo<>(list, SalaryMySalaryBillListDTO.class); From 83df05b7632b70ec5662662ef2de4ea58f462649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 12 Dec 2024 10:18:07 +0800 Subject: [PATCH 19/22] =?UTF-8?q?=E6=8E=A7=E5=88=B6=E4=B8=8B=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E7=B1=BB=E5=9E=8B=E6=98=BE=E7=A4=BA=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salaryarchive/bo/SalaryArchiveBO.java | 6 ++++-- .../salary/wrapper/SalaryArchiveWrapper.java | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index aa5ae2961..4261d8da2 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -61,7 +61,7 @@ public class SalaryArchiveBO { * * @param salaryItems */ - public static List buildSalaryArchiveTable(List salaryItems) { + public static List buildSalaryArchiveTable(List salaryItems, boolean openSecondaryAccount) { // 表格表头 List columns = new ArrayList<>(); WeaTableColumn idColumn = new WeaTableColumn("100px", "id", "id"); @@ -72,7 +72,9 @@ public class SalaryArchiveBO { employeeIdColumn.setDisplay(WeaBoolAttr.FALSE); columns.add(employeeIdColumn); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "姓名"), "username")); - columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "账号类型"), "accountType")); + if (openSecondaryAccount) { + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "账号类型"), "accountType")); + } columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgentName")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "分部"), "subcompanyName")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "部门"), "departmentName")); diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 22a642feb..85977afe1 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -26,6 +26,8 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.process.salaryArchive.SalaryArchiveProcessQueryParam; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; import com.google.common.collect.Lists; @@ -38,6 +40,8 @@ import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.OPEN_SECONDARY_ACCOUNT; + /** * 薪资档案 *

Copyright: Copyright (c) 2022

@@ -73,6 +77,12 @@ public class SalaryArchiveWrapper extends Service { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + //主次账号是否开启 + boolean openSecondaryAccount = "1".equals(getSalarySysConfService(user).getValueByCode(OPEN_SECONDARY_ACCOUNT)); /** * 薪资档案列表(分页) @@ -101,7 +111,7 @@ public class SalaryArchiveWrapper extends Service { //动态列组装 - List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems); + List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems, openSecondaryAccount); SalaryWeaTable table = new SalaryWeaTable(user, SalaryArchiveListDTO.class); table.setColumns(columns); @@ -153,7 +163,7 @@ public class SalaryArchiveWrapper extends Service { //动态列组装 - List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems); + List columns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems, openSecondaryAccount); SalaryWeaTable table = new SalaryWeaTable(user, SalaryArchiveListDTO.class); table.setColumns(columns); From 19a43857037b97494173f192f2f2df2d83c7acb5 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 12 Dec 2024 15:30:26 +0800 Subject: [PATCH 20/22] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=9F=BA=E6=95=B0?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B0=83=E6=95=B4=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SIArchivesServiceImpl.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index fe07b84a8..87f1cf0ba 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -3278,6 +3278,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService .build(); String combineErrorMsg = ""; + log.info("oldSocialInfoListSize:" + oldSocialInfoList.size()); //组装新数据 if (oldSocialInfoList.size() == 1) { //老数据 @@ -3546,6 +3547,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService return null; } + log.info("自动调整前 基数信息{}", paymentBaseJson); for (Map.Entry entry : paymentBaseJson.entrySet()) { //判断福利值是否为空/数字 @@ -3558,9 +3560,9 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService //根据福利方案id、险种id、缴纳对象、缴费状态查询明细 List insuranceSchemeDetailPOList = getInsuranceSchemeDetailMapper().getByPI(primaryId, Long.valueOf(entry.getKey())); - log.info("福利方案id: {},, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); + log.info("自动调整 福利方案id: {},, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); if (insuranceSchemeDetailPOList.size() == 0) { - log.info("根据福利方案id、险种id、缴纳对象查询明细为null!福利方案id: {}, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); + log.info("自动调整 根据福利方案id、险种id、缴纳对象查询明细为null!福利方案id: {}, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); throw new SalaryRunTimeException("根据福利方案id、险种id、缴纳对象查询明细为null!福利方案id: "+primaryId+", 福利明细项id:{}"+ Long.valueOf(entry.getKey())); } List isPaymentList = insuranceSchemeDetailPOList.stream() @@ -3574,18 +3576,19 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService if (lowerLimit != null && lowerLimit.length() > 0 && Double.parseDouble(entry.getValue()) < Double.parseDouble(lowerLimit)) { //数值低于对应福利明细下限 entry.setValue(lowerLimit); + log.info("自动调整 福利方案id: {},, 福利明细项id:{},数值{}低于对应福利明细下限{} ", primaryId, Long.valueOf(entry.getKey()), entry.getValue(), lowerLimit); } if (upperLimit != null && upperLimit.length() > 0 && Double.parseDouble(entry.getValue()) > Double.parseDouble(upperLimit)) { //数值高于对应福利明细上限 entry.setValue(upperLimit); + log.info("自动调整 福利方案id: {},, 福利明细项id:{},数值{}数值高于对应福利明细上限{} ", primaryId, Long.valueOf(entry.getKey()), entry.getValue(), upperLimit); } } else { - log.info("福利明细项属于未缴费状态,不对上下限进行约束"); + log.info("自动调整 福利明细项属于未缴费状态,不对上下限进行约束"); return null; } - - } + log.info("自动调整后 基数信息{}", paymentBaseJson); return JSON.toJSONString(paymentBaseJson); } From 66912f62a4648e040af8528c2754a44b708e94cd Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Thu, 12 Dec 2024 16:16:18 +0800 Subject: [PATCH 21/22] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=9F=BA=E6=95=B0?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B0=83=E6=95=B4=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/SIArchivesServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 87f1cf0ba..c29c44ac9 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -3567,6 +3567,7 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService } List isPaymentList = insuranceSchemeDetailPOList.stream() .filter(f -> f.getIsPayment().equals(IsPaymentEnum.YES.getValue()) && f.getPaymentScope().equals(paymentScope)).collect(Collectors.toList()); + log.info("自动调整 isPaymentList", isPaymentList.size()); if (isPaymentList.size() > 0) { InsuranceSchemeDetailPO insuranceSchemeDetailPO = isPaymentList.get(0); From c13cc9d0a29d9855ab3f87c10624d9e8695d0481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 12 Dec 2024 18:24:00 +0800 Subject: [PATCH 22/22] =?UTF-8?q?=E5=A4=84=E7=90=86=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E6=A1=A3=E6=A1=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java | 2 +- src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index e368c3d2d..41b6050bb 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -782,7 +782,7 @@ public class SalaryArchiveExcelBO extends Service { // .modifier(importHandleParam.getCurrentEmployeeId()) .deleteType(NumberUtils.INTEGER_ZERO) .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) - .employeeType(importHandleParam.isExtEmp() ? 1 : 0) + .employeeType(importHandleParam.isExtEmp() ? 1 : null) .build(); // 定薪action 保持状态为待定薪 if (importHandleParam.isInit() && importHandleParam.getKeepStatus() != null && importHandleParam.getKeepStatus().equals(Boolean.TRUE)) { diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml index e9d06ab89..833128372 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml @@ -441,7 +441,7 @@ hrsa_salary_archive t LEFT JOIN hrsa_external_employee e ON e.id = t.employee_id WHERE t.delete_type = 0 - and t.employee_type is not null + and t.employee_type = 1 AND t.id IN