diff --git a/resource/WEB-INF/config/MyBatis.xml b/resource/WEB-INF/config/MyBatis.xml new file mode 100644 index 000000000..31cc6f0dd --- /dev/null +++ b/resource/WEB-INF/config/MyBatis.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resource/WEB-INF/lib/QLExpress-3.2.0.jar b/resource/WEB-INF/lib/QLExpress-3.2.0.jar new file mode 100644 index 000000000..52f48b289 Binary files /dev/null and b/resource/WEB-INF/lib/QLExpress-3.2.0.jar differ diff --git a/resource/WEB-INF/lib/pagehelper-5.0.0.jar b/resource/WEB-INF/lib/pagehelper-5.0.0.jar new file mode 100644 index 000000000..187266c88 Binary files /dev/null and b/resource/WEB-INF/lib/pagehelper-5.0.0.jar differ diff --git a/resource/WEB-INF/prop/hrmSalary.properties b/resource/WEB-INF/prop/hrmSalary.properties new file mode 100644 index 000000000..5052d1101 --- /dev/null +++ b/resource/WEB-INF/prop/hrmSalary.properties @@ -0,0 +1,5 @@ +log=false +defaultCloseNonStandard149=true +AESEncryptScrect=990EB004A1C862721C1513AE90038C9E +version=2.3.2.2212.01 +openFormulaForcedEditing=false \ No newline at end of file diff --git a/src/com/api/salary/web/SalarySendRangeController.java b/src/com/api/salary/web/SalarySendRangeController.java new file mode 100644 index 000000000..f55f91346 --- /dev/null +++ b/src/com/api/salary/web/SalarySendRangeController.java @@ -0,0 +1,8 @@ +package com.api.salary.web; + +import javax.ws.rs.Path; + +@Path("/bs/hrmsalary/salaryBill/send/range/") +public class SalarySendRangeController extends com.engine.salary.web.SalarySendRangeController{ + +} diff --git a/src/com/engine/salary/action/BatEditSalaryExcelAction.java b/src/com/engine/salary/action/BatEditSalaryExcelAction.java new file mode 100644 index 000000000..fbf7c7c85 --- /dev/null +++ b/src/com/engine/salary/action/BatEditSalaryExcelAction.java @@ -0,0 +1,82 @@ +package com.engine.salary.action; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandleParam; +import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; +import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum; +import com.engine.salary.service.SalaryArchiveExcelService; +import com.engine.salary.service.impl.SalaryArchiveExcelServiceImpl; +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +public class BatEditSalaryExcelAction implements Action { + + private SalaryArchiveExcelService getSalaryArchiveExcelService(User user) { + return ServiceUtil.getService(SalaryArchiveExcelServiceImpl.class, user); + } + + private String batSalaryExcelField; + + public String getBatSalaryExcelField() { + return batSalaryExcelField; + } + + public void setBatSalaryExcelField(String batSalaryExcelField) { + this.batSalaryExcelField = batSalaryExcelField; + } + + @Override + public String execute(RequestInfo requestInfo) { + try { + + Property[] properties = requestInfo.getMainTableInfo().getProperty(); + Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, + property -> Util.null2String(property.getValue()))); + + String docId = fieldMap.get(batSalaryExcelField); + + RecordSet rs = new RecordSet(); + String queryImageId = "select imagefileid from docimagefile where docid = ?"; + rs.executeQuery(queryImageId, docId); + String imagefileid = null; + if (rs.next()) { + imagefileid = rs.getString("imagefileid"); + } + + SalaryArchiveImportHandleParam param = SalaryArchiveImportHandleParam.builder().imageId(imagefileid) + .listType(SalaryArchiveListTypeEnum.FIXED.getValue()) + .importType(SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getValue()) + .onlyCheck(false) + .isProcess(true) + .build(); + + Map map = getSalaryArchiveExcelService(new User()).batchImportEbatch(param); + int errorCount = (int) map.get("errorCount"); + if (errorCount > 0) { + log.error("批量调薪存在异常 requestId:{} map:{}",requestInfo.getRequestid(), map); +// List> excelComments = (List>) map.get("errorNotice"); +// StringBuilder message = new StringBuilder(); +// for (Map comments : excelComments) { +// message.append(comments.get("message")).append("/n"); +// } +// requestInfo.getRequestManager().setMessage(message.toString()); +// return FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + log.error("批量调薪异常", e); + requestInfo.getRequestManager().setMessage(e.getMessage()); + return FAILURE_AND_CONTINUE; + } + return SUCCESS; + } +} diff --git a/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java b/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java new file mode 100644 index 000000000..8d6313cd7 --- /dev/null +++ b/src/com/engine/salary/action/CheckBatEditSalaryExcelAction.java @@ -0,0 +1,82 @@ +package com.engine.salary.action; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandleParam; +import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; +import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum; +import com.engine.salary.service.SalaryArchiveExcelService; +import com.engine.salary.service.impl.SalaryArchiveExcelServiceImpl; +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +public class CheckBatEditSalaryExcelAction implements Action { + + private SalaryArchiveExcelService getSalaryArchiveExcelService(User user) { + return ServiceUtil.getService(SalaryArchiveExcelServiceImpl.class, user); + } + + private String batSalaryExcelField; + + public String getBatSalaryExcelField() { + return batSalaryExcelField; + } + + public void setBatSalaryExcelField(String batSalaryExcelField) { + this.batSalaryExcelField = batSalaryExcelField; + } + + @Override + public String execute(RequestInfo requestInfo) { + try { + Property[] properties = requestInfo.getMainTableInfo().getProperty(); + Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, + property -> Util.null2String(property.getValue()))); + + String docId = fieldMap.get(batSalaryExcelField); + + RecordSet rs = new RecordSet(); + String queryImageId = "select imagefileid from docimagefile where docid = ?"; + rs.executeQuery(queryImageId, docId); + String imagefileid = null; + if (rs.next()) { + imagefileid = rs.getString("imagefileid"); + } + + SalaryArchiveImportHandleParam param = SalaryArchiveImportHandleParam.builder().imageId(imagefileid) + .listType(SalaryArchiveListTypeEnum.FIXED.getValue()) + .importType(SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getValue()) + .onlyCheck(true) + .isProcess(true) + .build(); + + Map map = getSalaryArchiveExcelService(new User()).batchImportEbatch(param); + int errorCount = (int) map.get("errorCount"); + if (errorCount > 0) { + log.error("批量调薪检查存在异常 requestId:{} map:{}",requestInfo.getRequestid(), map); + List> excelComments = (List>) map.get("errorNotice"); + StringBuilder message = new StringBuilder("excel中"); + for (Map comments : excelComments) { + message.append(comments.get("message")).append("\n"); + } + requestInfo.getRequestManager().setMessage(message.toString()); + return FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + log.error("批量调薪检查异常", e); + requestInfo.getRequestManager().setMessage(e.getMessage()); + return FAILURE_AND_CONTINUE; + } + return SUCCESS; + } +} diff --git a/src/com/engine/salary/action/CheckEditSalaryAction.java b/src/com/engine/salary/action/CheckEditSalaryAction.java new file mode 100644 index 000000000..f6b2a7cd3 --- /dev/null +++ b/src/com/engine/salary/action/CheckEditSalaryAction.java @@ -0,0 +1,128 @@ +package com.engine.salary.action; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.wrapper.SalaryArchiveWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +public class CheckEditSalaryAction implements Action { + + + private SalaryArchiveWrapper getSalaryArchiveWrapper(User user) { + return ServiceUtil.getService(SalaryArchiveWrapper.class, user); + } + + private String tableName; + + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + @Override + public String execute(RequestInfo requestInfo) { + try { + + Property[] properties = requestInfo.getMainTableInfo().getProperty(); + Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, + property -> Util.null2String(property.getValue()))); + + + RecordSet rs = new RecordSet(); + + String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; + rs.executeQuery(queryImageId, requestInfo.getWorkflowid()); + + List list = new ArrayList<>(); + while (rs.next()) { + String processField = rs.getString("processfield"); + String salaryName = rs.getString("salaryname"); + String value = fieldMap.get(processField); + list.add(new SalaryField(processField, salaryName, value)); + } + List> importData = new ArrayList<>(); + importData.add(SalaryEntityUtil.convert2Map(list, SalaryField::getSalaryName, SalaryField::getValue)); + + SalaryArchiveImportActionParam build = SalaryArchiveImportActionParam.builder() + .importDatas(importData) + .build(); + Map map = getSalaryArchiveWrapper(new User()).checkAdjustmentSalaryArchive(build); + + List errorNotice = (List) map.get("errorNotice"); + if (CollectionUtils.isNotEmpty(errorNotice)) { + log.error("调薪检查存在异常 requestId:{} ,参数:{}, map:{}", requestInfo.getRequestid(), build, map); + List> excelComments = (List>) map.get("errorNotice"); + StringBuilder message = new StringBuilder(""); + for (Map comments : excelComments) { + message.append(comments.get("message")).append("\n"); + } + requestInfo.getRequestManager().setMessage(message.toString()); + return FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + log.error("调薪检查异常", e); + requestInfo.getRequestManager().setMessage(e.getMessage()); + return FAILURE_AND_CONTINUE; + } + return SUCCESS; + } + + + class SalaryField { + + private String processField; + + private String salaryName; + + private String value; + + public String getProcessField() { + return processField; + } + + public void setProcessField(String processField) { + this.processField = processField; + } + + public String getSalaryName() { + return salaryName; + } + + public void setSalaryName(String salaryName) { + this.salaryName = salaryName; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public SalaryField(String processField, String salaryName, String value) { + this.processField = processField; + this.salaryName = salaryName; + this.value = value; + } + } +} diff --git a/src/com/engine/salary/action/EditSalaryAction.java b/src/com/engine/salary/action/EditSalaryAction.java new file mode 100644 index 000000000..8ce5bc43a --- /dev/null +++ b/src/com/engine/salary/action/EditSalaryAction.java @@ -0,0 +1,128 @@ +package com.engine.salary.action; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.wrapper.SalaryArchiveWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +public class EditSalaryAction implements Action { + + + private SalaryArchiveWrapper getSalaryArchiveWrapper(User user) { + return ServiceUtil.getService(SalaryArchiveWrapper.class, user); + } + + private String tableName; + + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + @Override + public String execute(RequestInfo requestInfo) { + try { + + Property[] properties = requestInfo.getMainTableInfo().getProperty(); + Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, + property -> Util.null2String(property.getValue()))); + + + RecordSet rs = new RecordSet(); + + String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; + rs.executeQuery(queryImageId, requestInfo.getWorkflowid()); + + List list = new ArrayList<>(); + while (rs.next()) { + String processField = rs.getString("processfield"); + String salaryName = rs.getString("salaryname"); + String value = fieldMap.get(processField); + list.add(new SalaryField(processField, salaryName, value)); + } + List> importData = new ArrayList<>(); + importData.add(SalaryEntityUtil.convert2Map(list, SalaryField::getSalaryName, SalaryField::getValue)); + + SalaryArchiveImportActionParam build = SalaryArchiveImportActionParam.builder() + .importDatas(importData) + .build(); + Map map = getSalaryArchiveWrapper(new User()).adjustmentSalaryArchive(build); + + List errorNotice = (List) map.get("errorNotice"); + if (CollectionUtils.isNotEmpty(errorNotice)) { + log.error("调薪存在异常 requestId:{} map:{}",requestInfo.getRequestid(), map); +// List> excelComments = (List>) map.get("errorNotice"); +// StringBuilder message = new StringBuilder(""); +// for (Map comments : excelComments) { +// message.append(comments.get("message")).append("\n"); +// } +// requestInfo.getRequestManager().setMessage(message.toString()); +// return FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + log.error("调薪异常", e); + requestInfo.getRequestManager().setMessage(e.getMessage()); + return FAILURE_AND_CONTINUE; + } + return SUCCESS; + } + + + class SalaryField { + + private String processField; + + private String salaryName; + + private String value; + + public String getProcessField() { + return processField; + } + + public void setProcessField(String processField) { + this.processField = processField; + } + + public String getSalaryName() { + return salaryName; + } + + public void setSalaryName(String salaryName) { + this.salaryName = salaryName; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public SalaryField(String processField, String salaryName, String value) { + this.processField = processField; + this.salaryName = salaryName; + this.value = value; + } + } +} diff --git a/src/com/engine/salary/annotation/Encrypt.java b/src/com/engine/salary/annotation/Encrypt.java new file mode 100644 index 000000000..c61e1de44 --- /dev/null +++ b/src/com/engine/salary/annotation/Encrypt.java @@ -0,0 +1,20 @@ +package com.engine.salary.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 加密字段,用于标注需加解密的字段 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Encrypt { + +} diff --git a/src/com/engine/salary/biz/AddUpDeductionBiz.java b/src/com/engine/salary/biz/AddUpDeductionBiz.java index ba1b48ef7..75fc201f7 100644 --- a/src/com/engine/salary/biz/AddUpDeductionBiz.java +++ b/src/com/engine/salary/biz/AddUpDeductionBiz.java @@ -1,8 +1,6 @@ package com.engine.salary.biz; -import com.engine.salary.encrypt.datacollection.AddUpDeductionEncrypt; -import com.engine.salary.encrypt.datacollection.AddUpDeductionRecordStrDTOEncrypt; -import com.engine.salary.encrypt.datacollection.AddUpDeductionStrDTOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.dto.AddUpDeductionDTO; import com.engine.salary.entity.datacollection.dto.AddUpDeductionRecordDTO; @@ -19,6 +17,8 @@ import java.util.stream.Collectors; public class AddUpDeductionBiz extends BaseBean { + private final EncryptUtil encryptUtil = new EncryptUtil(); + /** * 关联查询查询列表 @@ -31,7 +31,7 @@ public class AddUpDeductionBiz extends BaseBean { try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); List list = mapper.list(param); - AddUpDeductionStrDTOEncrypt.decryptAddUpDeductionList(list); + list = encryptUtil.decryptList(list, AddUpDeductionDTO.class); return list; } finally { sqlSession.close(); @@ -49,7 +49,7 @@ public class AddUpDeductionBiz extends BaseBean { try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); List addUpDeductions = mapper.listSome(param); - return AddUpDeductionEncrypt.decryptAddUpDeductionList(addUpDeductions); + return encryptUtil.decryptList(addUpDeductions, AddUpDeduction.class); } finally { sqlSession.close(); } @@ -67,7 +67,7 @@ public class AddUpDeductionBiz extends BaseBean { try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); AddUpDeduction byId = mapper.getById(id); - return AddUpDeductionEncrypt.decryptAddUpDeduction(byId); + return encryptUtil.decrypt(byId, AddUpDeduction.class); } finally { sqlSession.close(); } @@ -84,7 +84,7 @@ public class AddUpDeductionBiz extends BaseBean { try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); List addUpDeductionRecordStrDTOS = mapper.recordList(param); - return AddUpDeductionRecordStrDTOEncrypt.decryptAddUpDeductionRecordDTO(addUpDeductionRecordStrDTOS); + return encryptUtil.decryptList(addUpDeductionRecordStrDTOS, AddUpDeductionRecordDTO.class); } finally { sqlSession.close(); } @@ -103,7 +103,7 @@ public class AddUpDeductionBiz extends BaseBean { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); - AddUpDeductionEncrypt.encryptAddUpDeductionList(param); + encryptUtil.encryptList(param, AddUpDeduction.class); List> partition = Lists.partition(param, 100); partition.forEach(mapper::insertData); sqlSession.commit(); @@ -125,7 +125,7 @@ public class AddUpDeductionBiz extends BaseBean { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpDeductionMapper mapper = sqlSession.getMapper(AddUpDeductionMapper.class); - AddUpDeductionEncrypt.encryptAddUpDeductionList(param); + encryptUtil.encryptList(param, AddUpDeduction.class); List> partition = Lists.partition(param, 100); partition.forEach(mapper::updateData); sqlSession.commit(); @@ -135,11 +135,6 @@ public class AddUpDeductionBiz extends BaseBean { } - - - - - /** * 处理导入数据 * diff --git a/src/com/engine/salary/biz/AddUpSituationBiz.java b/src/com/engine/salary/biz/AddUpSituationBiz.java index 3ddc0b8fb..ba27c39d9 100644 --- a/src/com/engine/salary/biz/AddUpSituationBiz.java +++ b/src/com/engine/salary/biz/AddUpSituationBiz.java @@ -1,8 +1,6 @@ package com.engine.salary.biz; -import com.engine.salary.encrypt.datacollection.AddUpSituationDTOEncrypt; -import com.engine.salary.encrypt.datacollection.AddUpSituationEncrypt; -import com.engine.salary.encrypt.datacollection.AddUpSituationRecordDTOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.dto.AddUpSituationDTO; import com.engine.salary.entity.datacollection.dto.AddUpSituationRecordDTO; @@ -19,6 +17,7 @@ import java.util.stream.Collectors; public class AddUpSituationBiz extends BaseBean { + private EncryptUtil encryptUtil = new EncryptUtil(); /** * 关联查询查询列表 @@ -31,7 +30,7 @@ public class AddUpSituationBiz extends BaseBean { try { AddUpSituationMapper mapper = sqlSession.getMapper(AddUpSituationMapper.class); List list = mapper.list(param); - return AddUpSituationDTOEncrypt.decryptAddUpSituationDTOList(list); + return encryptUtil.decryptList(list, AddUpSituationDTO.class); } finally { sqlSession.close(); } @@ -48,7 +47,7 @@ public class AddUpSituationBiz extends BaseBean { try { AddUpSituationMapper mapper = sqlSession.getMapper(AddUpSituationMapper.class); List addUpSituations = mapper.listSome(param); - return AddUpSituationEncrypt.decryptAddUpSituationList(addUpSituations); + return encryptUtil.decryptList(addUpSituations, AddUpSituation.class); } finally { sqlSession.close(); } @@ -66,7 +65,7 @@ public class AddUpSituationBiz extends BaseBean { try { AddUpSituationMapper mapper = sqlSession.getMapper(AddUpSituationMapper.class); AddUpSituation byId = mapper.getById(id); - return AddUpSituationEncrypt.decryptAddUpSituation(byId); + return encryptUtil.decrypt(byId, AddUpSituation.class); } finally { sqlSession.close(); } @@ -83,7 +82,7 @@ public class AddUpSituationBiz extends BaseBean { try { AddUpSituationMapper mapper = sqlSession.getMapper(AddUpSituationMapper.class); List addUpSituationRecordDTOS = mapper.recordList(param); - return AddUpSituationRecordDTOEncrypt.decryptAddUpSituationRecordDTOList(addUpSituationRecordDTOS); + return encryptUtil.decryptList(addUpSituationRecordDTOS, AddUpSituationRecordDTO.class); } finally { sqlSession.close(); } @@ -102,7 +101,7 @@ public class AddUpSituationBiz extends BaseBean { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpSituationMapper mapper = sqlSession.getMapper(AddUpSituationMapper.class); - AddUpSituationEncrypt.encryptAddUpSituationList(param); + encryptUtil.encryptList(param, AddUpSituation.class); List> partition = Lists.partition(param, 50); partition.forEach(mapper::insertData); sqlSession.commit(); @@ -124,7 +123,7 @@ public class AddUpSituationBiz extends BaseBean { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { AddUpSituationMapper mapper = sqlSession.getMapper(AddUpSituationMapper.class); - AddUpSituationEncrypt.encryptAddUpSituationList(param); + encryptUtil.encryptList(param, AddUpSituation.class); List> partition = Lists.partition(param, 50); partition.forEach(mapper::updateData); sqlSession.commit(); diff --git a/src/com/engine/salary/biz/OtherDeductionBiz.java b/src/com/engine/salary/biz/OtherDeductionBiz.java index b71668f86..5b6002825 100644 --- a/src/com/engine/salary/biz/OtherDeductionBiz.java +++ b/src/com/engine/salary/biz/OtherDeductionBiz.java @@ -1,7 +1,6 @@ package com.engine.salary.biz; -import com.engine.salary.encrypt.datacollection.OtherDeductionPOEncrypt; -import com.engine.salary.encrypt.datacollection.OtherDeductionRecordDTOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.dto.OtherDeductionRecordDTO; import com.engine.salary.entity.datacollection.param.OtherDeductionQueryParam; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; @@ -17,7 +16,7 @@ import java.util.stream.Collectors; public class OtherDeductionBiz extends BaseBean { - + private EncryptUtil encryptUtil = new EncryptUtil(); /** * 条件查询 @@ -30,7 +29,7 @@ public class OtherDeductionBiz extends BaseBean { try { OtherDeductionMapper mapper = sqlSession.getMapper(OtherDeductionMapper.class); List otherDeductionPOS = mapper.listSome(param); - return OtherDeductionPOEncrypt.decryptOtherDeductionPOList(otherDeductionPOS); + return encryptUtil.decryptList(otherDeductionPOS, OtherDeductionPO.class); } finally { sqlSession.close(); } @@ -48,7 +47,7 @@ public class OtherDeductionBiz extends BaseBean { try { OtherDeductionMapper mapper = sqlSession.getMapper(OtherDeductionMapper.class); OtherDeductionPO byId = mapper.getById(id); - return OtherDeductionPOEncrypt.decryptOtherDeductionPO(byId); + return encryptUtil.decrypt(byId, OtherDeductionPO.class); } finally { sqlSession.close(); } @@ -65,7 +64,7 @@ public class OtherDeductionBiz extends BaseBean { try { OtherDeductionMapper mapper = sqlSession.getMapper(OtherDeductionMapper.class); List otherDeductionRecordDTOS = mapper.recordList(param); - return OtherDeductionRecordDTOEncrypt.decryptOtherDeductionRecordDTOList(otherDeductionRecordDTOS); + return encryptUtil.decryptList(otherDeductionRecordDTOS, OtherDeductionRecordDTO.class); } finally { sqlSession.close(); } @@ -84,7 +83,7 @@ public class OtherDeductionBiz extends BaseBean { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { OtherDeductionMapper mapper = sqlSession.getMapper(OtherDeductionMapper.class); - OtherDeductionPOEncrypt.encryptOtherDeductionPOList(param); + encryptUtil.encryptList(param, OtherDeductionPO.class); List> partition = Lists.partition(param, 100); partition.forEach(mapper::insertData); sqlSession.commit(); @@ -106,7 +105,7 @@ public class OtherDeductionBiz extends BaseBean { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { OtherDeductionMapper mapper = sqlSession.getMapper(OtherDeductionMapper.class); - OtherDeductionPOEncrypt.encryptOtherDeductionPOList(param); + encryptUtil.encryptList(param, OtherDeductionPO.class); List> partition = Lists.partition(param, 100); partition.forEach(mapper::updateData); sqlSession.commit(); diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index 52b76d7dc..2bf7c9e3d 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -5,21 +5,16 @@ import com.alibaba.fastjson.TypeReference; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.cache.SalaryCacheKey; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.encrypt.AESEncryptUtil; -import com.engine.salary.encrypt.siaccount.InsuranceAccountDetailPOEncrypt; -import com.engine.salary.encrypt.siaccount.InsuranceAccountDetailTempPOEncrypt; -import com.engine.salary.encrypt.siaccount.SiAccountEncrypt; -import com.engine.salary.encrypt.sischeme.InsuranceSchemeDetailPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryacct.dto.SalaryAcctProgressDTO; import com.engine.salary.entity.siaccount.dto.InsuranceAccountViewListDTO; import com.engine.salary.entity.siaccount.dto.SIAccountUtilDTO; import com.engine.salary.entity.siaccount.param.*; -import com.engine.salary.entity.siaccount.po.InsuranceAccountBatchPO; -import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; -import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailTempPO; -import com.engine.salary.entity.siaccount.po.InsuranceAccountInspectPO; +import com.engine.salary.entity.siaccount.po.*; import com.engine.salary.entity.siarchives.po.*; import com.engine.salary.entity.sicategory.po.ICategoryPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; @@ -33,8 +28,10 @@ import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; import com.engine.salary.mapper.sicategory.ICategoryMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; +import com.engine.salary.service.SalaryAcctProgressService; import com.engine.salary.service.SalaryEmployeeService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.impl.SalaryAcctProgressServiceImpl; import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; import com.engine.salary.service.impl.TaxAgentServiceImpl; import com.engine.salary.sys.entity.vo.OrderRuleVO; @@ -53,6 +50,7 @@ import com.wbi.util.StringUtil; import dm.jdbc.util.IdGenerator; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import weaver.hrm.User; @@ -76,6 +74,8 @@ public class SIAccountBiz extends Service { private SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); + private EncryptUtil encryptUtil = new EncryptUtil(); + private TaxAgentService getTaxAgentService() { return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } @@ -109,12 +109,20 @@ public class SIAccountBiz extends Service { return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + private InsuranceCompensationMapper getInsuranceCompensationMapper() { + return MapperProxyFactory.getProxy(InsuranceCompensationMapper.class); + } + + private SalaryAcctProgressService getSalaryAcctProgressService(User user) { + return (SalaryAcctProgressService) ServiceUtil.getService(SalaryAcctProgressServiceImpl.class, user); + } + public PageInfo listPage(InsuranceAccountBatchParam queryParam) { - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getInsuranceAccountBatchMapper().list(queryParam); - list = SiAccountEncrypt.decryptInsuranceAccountBatchList(list); - PageInfo pageInfo = new PageInfo<>(list, InsuranceAccountBatchPO.class); - return pageInfo; + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, InsuranceAccountBatchPO.class); + encryptUtil.decryptList(page.getList(), InsuranceAccountBatchPO.class); + return page; } public PageInfo listCommonPage(InsuranceAccountDetailParam queryParam) { @@ -132,21 +140,20 @@ public class SIAccountBiz extends Service { OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getInsuranceAccountDetailMapper().list(queryParam); - InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(list); - PageInfo pageInfo = new PageInfo<>(list, InsuranceAccountDetailPO.class); + PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, InsuranceAccountDetailPO.class); + encryptUtil.decryptList(pageInfo.getList(), InsuranceAccountDetailPO.class); return pageInfo; } public String save(boolean flag, AccountParam param, Long employeeId, String currentUserName) { if (flag) { InsuranceAccountBatchPO insuranceAccountBatchPO = getInsuranceAccountBatchMapper().getByBillMonth(param.getBillMonth(), param.getPaymentOrganization()); - insuranceAccountBatchPO = SiAccountEncrypt.decryptInsuranceAccountBatch(insuranceAccountBatchPO); + insuranceAccountBatchPO = encryptUtil.decrypt(insuranceAccountBatchPO, InsuranceAccountBatchPO.class); SalaryAssert.isNull(insuranceAccountBatchPO, SalaryI18nUtil.getI18nLabel(100461, "所属月份存在核算数据")); - InsuranceAccountBatchPO build = InsuranceAccountBatchPO.builder() .paymentOrganization(param.getPaymentOrganization()) .accountant(currentUserName) @@ -160,7 +167,7 @@ public class SIAccountBiz extends Service { .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) .paymentOrganization(param.getPaymentOrganization()) .build(); - SiAccountEncrypt.encryptInsuranceAccountBatch(build); + encryptUtil.encrypt(build, InsuranceAccountBatchPO.class); getInsuranceAccountBatchMapper().insert(build); // LoggerContext insuranceSchemeContext = new LoggerContext(); // insuranceSchemeContext.setTargetId(String.valueOf(build.getId())); @@ -176,7 +183,7 @@ public class SIAccountBiz extends Service { } catch (Exception e) { // 回滚 List list = Lists.newArrayList(getInsuranceAccountBatchMapper().getByBillMonth(param.getBillMonth(), param.getPaymentOrganization())); - list = SiAccountEncrypt.decryptInsuranceAccountBatchList(list); + list = encryptUtil.decryptList(list, InsuranceAccountBatchPO.class); if (CollectionUtils.isNotEmpty(list)) { list.stream().forEach(f -> { getInsuranceAccountBatchMapper().deleteById(f.getId()); @@ -197,7 +204,7 @@ public class SIAccountBiz extends Service { // employeeIds = employeeIds.stream().filter(employeeIdsInTaxAgent::contains).collect(Collectors.toList()); if (CollectionUtils.isEmpty(employeeIds)) { List list = Lists.newArrayList(getInsuranceAccountBatchMapper().getByBillMonth(param.getBillMonth(), paymentOrganization)); - SiAccountEncrypt.decryptInsuranceAccountBatchList(list); + encryptUtil.decryptList(list, InsuranceAccountBatchPO.class); if (CollectionUtils.isNotEmpty(list)) { list.stream().forEach(f -> { getInsuranceAccountDetailMapper().deleteById(f.getId()); @@ -221,10 +228,20 @@ public class SIAccountBiz extends Service { public void accounting(AccountParam param, Long employeeId, String tenantKey, String currentUserName) { //薪资核算进度暂未实现 -// SalaryAcctProgressDTO salaryAcctProgressDTO = salaryAcctProgressService.getProgress(tenantKey + param.getBillMonth(), employeeId, tenantKey); -// if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { -// return; -// } + SalaryAcctProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth()); + if (salaryAcctProgressDTO != null && salaryAcctProgressDTO.getProgress().compareTo(BigDecimal.ONE) < 0) { + return; + } + // 初始化进度 + SalaryAcctProgressDTO initProgress = new SalaryAcctProgressDTO() + .setTitle(SalaryI18nUtil.getI18nLabel(97515, "核算中")) + .setTitleLabelId(97515L) + .setTotalQuantity(NumberUtils.INTEGER_ONE) + .setCalculatedQuantity(NumberUtils.INTEGER_ZERO) + .setProgress(BigDecimal.ZERO) + .setStatus(true) + .setMessage(StringUtils.EMPTY); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), initProgress); doAccounting(param, employeeId, tenantKey, currentUserName); } @@ -290,11 +307,23 @@ public class SIAccountBiz extends Service { } if (CollectionUtils.isEmpty(ids)) { //salaryAcctProgressService.fail(tenantKey + param.getBillMonth(), SalaryI18nUtil.getI18nLabel( 100468, "无需要核算的人员")); + getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), SalaryI18nUtil.getI18nLabel( 100468, "无需要核算的人员")); return; } - SalaryAcctProgressDTO salaryAcctProgressDTO = new SalaryAcctProgressDTO(SalaryI18nUtil.getI18nLabel(97515, "核算中"), 97515L, ids.size(), 0, - BigDecimal.ZERO, true, "", true); +// SalaryAcctProgressDTO salaryAcctProgressDTO = new SalaryAcctProgressDTO(SalaryI18nUtil.getI18nLabel(97515, "核算中"), 97515L, ids.size(), 0, +// BigDecimal.ZERO, true, "", true); //salaryAcctProgressService.initProgress(tenantKey + param.getBillMonth(), salaryAcctProgressDTO, employeeId, tenantKey); + + // 初始化进度 + SalaryAcctProgressDTO initProgress = new SalaryAcctProgressDTO() + .setTitle(SalaryI18nUtil.getI18nLabel(97515, "核算中")) + .setTitleLabelId(97515L) + .setTotalQuantity(ids.size()) + .setCalculatedQuantity(NumberUtils.INTEGER_ZERO) + .setProgress(BigDecimal.ZERO) + .setStatus(true) + .setMessage(StringUtils.EMPTY); + getSalaryAcctProgressService(user).initProgress(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), initProgress); /* List> partition = Lists.partition(ids, 100); CountDownLatch countDownLatch = new CountDownLatch(partition.size()); BlockingDeque results = new LinkedBlockingDeque<>(partition.size());*/ @@ -309,11 +338,16 @@ public class SIAccountBiz extends Service { /* if (allSuccess) {*/ handleData(ids, param, employeeId, tenantKey, currentUserName); /*}*/ - MapperProxyFactory.getProxy(SIAccountDetailTempMapper.class).batchDelAccountTempDetails(ids, param.getBillMonth()); + List> partition = Lists.partition((List) ids, 100); + partition.forEach(part -> { + MapperProxyFactory.getProxy(SIAccountDetailTempMapper.class).batchDelByEmpIdsAndMonthAndPayOrg(part, param.getBillMonth(), param.getPaymentOrganization()); + }); + + getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), true); } catch (Exception e) { log.error("account run fail", e); List list = Lists.newArrayList(getInsuranceAccountBatchMapper().getByBillMonth(param.getBillMonth(), param.getPaymentOrganization())); - list = SiAccountEncrypt.decryptInsuranceAccountBatchList(list); + list = encryptUtil.decryptList(list, InsuranceAccountBatchPO.class); if (CollectionUtils.isNotEmpty(list)) { list.stream().forEach(f -> { getInsuranceAccountBatchMapper().deleteById(f.getId()); @@ -323,6 +357,7 @@ public class SIAccountBiz extends Service { //薪资核算进度暂未实现 //salaryAcctProgressService.del(tenantKey + param.getBillMonth(), employeeId, tenantKey); //logger.error("welfare account error:{}", e.getMessage(), e); + getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), e.getMessage()); } } @@ -364,10 +399,17 @@ public class SIAccountBiz extends Service { count++; if (count % 50 == 0 || count >= ids.size()) { //salaryAcctProgressService.getAndAddCalculatedQty(tenantKey + billMonth, count >= ids.size() ? count % 50 : 50); + getSalaryAcctProgressService(user).getAndAddCalculatedQty(SalaryCacheKey.ACCT_PROGRESS + billMonth, count >= ids.size() ? count % 50 : 50); } } + //临时表入库前先对(可能存在的)历史数据进行删除 + List> partition = Lists.partition((List) ids, 100); + partition.forEach(part -> { + MapperProxyFactory.getProxy(SIAccountDetailTempMapper.class).batchDelByEmpIdsAndMonthAndPayOrg(part, billMonth, paymentOrganization); + }); + //临时表数据入库 if (CollectionUtils.isNotEmpty(list)) { - InsuranceAccountDetailTempPOEncrypt.encryptInsuranceAccountDetailTempPOList(list); + encryptUtil.encryptList(list, InsuranceAccountDetailTempPO.class); List> lists = splitList(list, 40); lists.forEach(subList -> { MapperProxyFactory.getProxy(SIAccountDetailTempMapper.class).batchSaveAccountTempDetails(subList); @@ -404,15 +446,23 @@ public class SIAccountBiz extends Service { String billMonth = param.getBillMonth(); try { List list = MapperProxyFactory.getProxy(SIAccountDetailTempMapper.class).getListByEmployeeIdsAndBillMonth(ids, billMonth, param.getPaymentOrganization()); - InsuranceAccountDetailTempPOEncrypt.decryptInsuranceAccountDetailTempPOList(list); + encryptUtil.decryptList(list, InsuranceAccountDetailTempPO.class); Integer paymentStatus = 0; log.info("核算明细临时表 hrsa_bill_detail_temp待处理数量:{}", list.size()); List> partitionIds = Lists.partition((List) ids, 100); log.info("bill_detail入库前删除数据数量:{}", ids.size()); for (List part : partitionIds) { getInsuranceAccountDetailMapper().batchDelAccountDetails(part, billMonth, param.getPaymentOrganization(), paymentStatus); + + //删除账单月份+个税扣缴义务人+人员id下的调差数据 + getInsuranceCompensationMapper().deleteByBillMonthPayOrgEmpIds(InsuranceCompensationPO.builder() + .billMonth(billMonth) + .paymentOrganization(param.getPaymentOrganization()) + .employeeIds(part) + .build()); } + //生成bill_detail入库数据 List collect = list.stream().map(item -> { InsuranceAccountDetailPO insuranceAccountDetailPO = new InsuranceAccountDetailPO(); BeanUtils.copyProperties(item, insuranceAccountDetailPO); @@ -421,7 +471,7 @@ public class SIAccountBiz extends Service { if (CollectionUtils.isNotEmpty(collect)) { log.info("bill_detail入库数据数量:{}", collect.size()); batchSaveAccountInspectDetail(collect, billMonth, tenantKey); - InsuranceAccountDetailPOEncrypt.encryptInsuranceAccountDetailPOList(collect); + encryptUtil.encryptList(collect, InsuranceAccountDetailPO.class); List> lists = splitDetailList(collect, 20); lists.forEach(subList -> { getInsuranceAccountDetailMapper().batchSaveAccountDetails(subList); @@ -475,7 +525,7 @@ public class SIAccountBiz extends Service { Boolean inDataRange = SalaryDateUtil.monthInRange(insuranceAccountDetailPO.getBillMonth(), otherPO.getOtherStartTime(), otherPO.getOtherEndTime()); if ((Objects.equals(NonPaymentEnum.YES.getValue(), otherPO.getNonPayment()) || otherPO.getNonPayment() == null) && otherPO.getOtherSchemeId() != null && inDataRange) { List detailPOS = MapperProxyFactory.getProxy(InsuranceSchemeDetailMapper.class).queryListBySchemeId(otherPO.getOtherSchemeId()); - InsuranceSchemeDetailPOEncrypt.decryptList(detailPOS); + encryptUtil.decryptList(detailPOS, InsuranceSchemeDetailPO.class); //方案中包含的需要缴纳其他的个人福利 Map otherPerson = detailPOS.stream() .filter(item -> Objects.equals(IsPaymentEnum.YES.getValue(), item.getIsPayment()) && item.getPaymentScope() == PaymentScopeEnum.SCOPE_PERSON.getValue()) @@ -566,7 +616,7 @@ public class SIAccountBiz extends Service { Boolean inDataRange = SalaryDateUtil.monthInRange(insuranceAccountDetailPO.getBillMonth(), fundPO.getFundStartTime(), fundPO.getFundEndTime()); if ((NonPaymentEnum.YES.getValue() == fundPO.getNonPayment() || fundPO.getNonPayment() == null) && fundPO.getFundSchemeId() != null && inDataRange) { List detailPOS = MapperProxyFactory.getProxy(InsuranceSchemeDetailMapper.class).queryListBySchemeId(fundPO.getFundSchemeId()); - InsuranceSchemeDetailPOEncrypt.decryptList(detailPOS); + encryptUtil.decryptList(detailPOS, InsuranceSchemeDetailPO.class); //方案中包含的需要缴纳社保的个人福利 Map fundperson = detailPOS.stream() .filter(item -> IsPaymentEnum.YES.getValue() == item.getIsPayment() && item.getPaymentScope() == PaymentScopeEnum.SCOPE_PERSON.getValue()) @@ -657,7 +707,7 @@ public class SIAccountBiz extends Service { Boolean inDataRange = SalaryDateUtil.monthInRange(insuranceAccountDetailPO.getBillMonth(), socialPO.getSocialStartTime(), socialPO.getSocialEndTime()); if ((NonPaymentEnum.YES.getValue().equals(socialPO.getNonPayment()) || socialPO.getNonPayment() == null) && socialPO.getSocialSchemeId() != null && inDataRange) { List detailPOS = MapperProxyFactory.getProxy(InsuranceSchemeDetailMapper.class).queryListBySchemeId(socialPO.getSocialSchemeId()); - InsuranceSchemeDetailPOEncrypt.decryptList(detailPOS); + encryptUtil.decryptList(detailPOS, InsuranceSchemeDetailPO.class); //方案中包含的需要缴纳社保的个人福利 Map schemeperson = detailPOS.stream() .filter(item -> Objects.equals(IsPaymentEnum.YES.getValue(), item.getIsPayment()) && Objects.equals(item.getPaymentScope(), PaymentScopeEnum.SCOPE_PERSON.getValue())) @@ -817,7 +867,7 @@ public class SIAccountBiz extends Service { BigDecimal socialTemp = new BigDecimal("0"); BigDecimal fundTemp = new BigDecimal("0"); BigDecimal otherTemp = new BigDecimal("0"); - InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(v); + encryptUtil.decryptList(v, InsuranceAccountDetailPO.class); boolean socialPersonFlag = false; boolean fundPersonFlag = false; boolean otherPersonFlag = false; @@ -853,7 +903,7 @@ public class SIAccountBiz extends Service { } } InsuranceAccountBatchPO insuranceAccountBatchPO = getInsuranceAccountBatchMapper().getByBillMonth(billMonth, param.getPaymentOrganization()); - SiAccountEncrypt.decryptInsuranceAccountBatch(insuranceAccountBatchPO); + encryptUtil.decrypt(insuranceAccountBatchPO, InsuranceAccountBatchPO.class); DataCollectionEmployee simpleEmployee = MapperProxyFactory.getProxy(EmployMapper.class).getEmployeeById(employeeId); insuranceAccountBatchPO.setAccountant(currentUserName); @@ -864,7 +914,7 @@ public class SIAccountBiz extends Service { insuranceAccountBatchPO.setFundPay(fundSum.toPlainString()); insuranceAccountBatchPO.setOtherNum(otherAccountPerson); insuranceAccountBatchPO.setOtherPay(otherSum.toPlainString()); - SiAccountEncrypt.encryptInsuranceAccountBatch(insuranceAccountBatchPO); + encryptUtil.encrypt(insuranceAccountBatchPO, InsuranceAccountBatchPO.class); getInsuranceAccountBatchMapper().updateById(insuranceAccountBatchPO); // LoggerContext insuranceSchemeContext = new LoggerContext(); // insuranceSchemeContext.setTargetId(String.valueOf(insuranceAccountBatchPO.getId())); @@ -896,13 +946,16 @@ public class SIAccountBiz extends Service { public void delete(AccountParam param, Long employeeId) { InsuranceAccountBatchPO insuranceAccountBatchPO = getInsuranceAccountBatchMapper().getByBillMonth(param.getBillMonth(), param.getPaymentOrganization()); - SiAccountEncrypt.decryptInsuranceAccountBatch(insuranceAccountBatchPO); + encryptUtil.decrypt(insuranceAccountBatchPO, InsuranceAccountBatchPO.class); SalaryAssert.notNull(insuranceAccountBatchPO, SalaryI18nUtil.getI18nLabel(84026, "参数错误")); // if(param.getPaymentOrganization()==null){ // throw new SalaryRunTimeException("个税扣缴义务人为空"); // } getInsuranceAccountBatchMapper().deleteById(insuranceAccountBatchPO.getId()); getInsuranceAccountDetailMapper().batchDeleteNotFile(param.getBillMonth(), param.getPaymentOrganization()); + + //删除账单月份+个税扣缴义务人下的调差数据 + getInsuranceCompensationMapper().deleteByBillMonthAndPayOrg(param.getBillMonth(), param.getPaymentOrganization()); // LoggerContext insuranceSchemeContext = new LoggerContext(); // insuranceSchemeContext.setTargetId(String.valueOf(insuranceAccountBatchPO.getId())); // insuranceSchemeContext.setTargetName(insuranceAccountBatchPO.getBillMonth()); @@ -1051,7 +1104,7 @@ public class SIAccountBiz extends Service { insuranceAccountDetailPO.setOtherPaymentBaseString(otherPO.getOtherPaymentBaseString()); if ((Objects.equals(NonPaymentEnum.YES.getValue(), otherPO.getNonPayment()) || otherPO.getNonPayment() == null) && otherPO.getOtherSchemeId() != null) { List detailPOS = MapperProxyFactory.getProxy(InsuranceSchemeDetailMapper.class).queryListBySchemeId(otherPO.getOtherSchemeId()); - InsuranceSchemeDetailPOEncrypt.decryptList(detailPOS); + encryptUtil.decryptList(detailPOS, InsuranceSchemeDetailPO.class); //方案中包含的需要缴纳其他的个人福利 Map otherPerson = detailPOS.stream() .filter(item -> Objects.equals(IsPaymentEnum.YES.getValue(), item.getIsPayment()) && item.getPaymentScope() == PaymentScopeEnum.SCOPE_PERSON.getValue()) @@ -1141,7 +1194,7 @@ public class SIAccountBiz extends Service { insuranceAccountDetailPO.setFundPaymentBaseString(fundPO.getFundPaymentBaseString()); if ((NonPaymentEnum.YES.getValue() == fundPO.getNonPayment() || fundPO.getNonPayment() == null) && fundPO.getFundSchemeId() != null) { List detailPOS = MapperProxyFactory.getProxy(InsuranceSchemeDetailMapper.class).queryListBySchemeId(fundPO.getFundSchemeId()); - InsuranceSchemeDetailPOEncrypt.decryptList(detailPOS); + encryptUtil.decryptList(detailPOS, InsuranceSchemeDetailPO.class); //方案中包含的需要缴纳社保的个人福利 Map fundperson = detailPOS.stream() .filter(item -> IsPaymentEnum.YES.getValue() == item.getIsPayment() && item.getPaymentScope() == PaymentScopeEnum.SCOPE_PERSON.getValue()) @@ -1229,7 +1282,7 @@ public class SIAccountBiz extends Service { insuranceAccountDetailPO.setSocialPaymentBaseString(socialPO.getSocialPaymentBaseString()); if ((NonPaymentEnum.YES.getValue() == socialPO.getNonPayment() || socialPO.getNonPayment() == null) && socialPO.getSocialSchemeId() != null) { List detailPOS = MapperProxyFactory.getProxy(InsuranceSchemeDetailMapper.class).queryListBySchemeId(socialPO.getSocialSchemeId()); - InsuranceSchemeDetailPOEncrypt.decryptList(detailPOS); + encryptUtil.decryptList(detailPOS, InsuranceSchemeDetailPO.class); //方案中包含的需要缴纳社保的个人福利 Map schemeperson = detailPOS.stream() .filter(item -> IsPaymentEnum.YES.getValue() == item.getIsPayment() && item.getPaymentScope() == PaymentScopeEnum.SCOPE_PERSON.getValue()) @@ -1317,7 +1370,7 @@ public class SIAccountBiz extends Service { insuranceAccountDetailPO.setSocialPaymentBaseString(socialPO.getSocialPaymentBaseString()); if ((NonPaymentEnum.YES.getValue() == socialPO.getNonPayment() || socialPO.getNonPayment() == null) && socialPO.getSocialSchemeId() != null) { List detailPOS = MapperProxyFactory.getProxy(InsuranceSchemeDetailMapper.class).queryListBySchemeId(socialPO.getSocialSchemeId()); - InsuranceSchemeDetailPOEncrypt.decryptList(detailPOS); + encryptUtil.decryptList(detailPOS, InsuranceSchemeDetailPO.class); //方案中包含的需要缴纳社保的个人福利 Map schemeperson = detailPOS.stream() .filter(item -> IsPaymentEnum.YES.getValue() == item.getIsPayment() && item.getPaymentScope() == PaymentScopeEnum.SCOPE_PERSON.getValue()) @@ -1417,7 +1470,7 @@ public class SIAccountBiz extends Service { } batchSaveAccountInspectDetail(pos, billMonth, tenantKey); getInsuranceAccountDetailMapper().batchDelSupplementAccountDetails(pos); - InsuranceAccountDetailPOEncrypt.encryptInsuranceAccountDetailPOList(pos); + encryptUtil.encryptList(pos, InsuranceAccountDetailPO.class); List> lists = splitDetailList(pos, 20); lists.forEach(subList -> { getInsuranceAccountDetailMapper().batchSaveAccountDetails(subList); @@ -1495,11 +1548,11 @@ public class SIAccountBiz extends Service { // SalaryAssert.isEmpty(insuranceAccountInspectPOS, SalaryI18nUtil.getI18nLabel( 100500, "当前核算月存在核算异常数据")); //开始归档数据 InsuranceAccountBatchPO insuranceAccountBatchPO = getInsuranceAccountBatchMapper().getByBillStatus(billMonth, BillStatusEnum.NOT_ARCHIVED.getValue(), paymentOrganization); - SiAccountEncrypt.decryptInsuranceAccountBatch(insuranceAccountBatchPO); + encryptUtil.decrypt(insuranceAccountBatchPO, InsuranceAccountBatchPO.class); SalaryAssert.notNull(insuranceAccountBatchPO, SalaryI18nUtil.getI18nLabel(100503, "月份账单不存在")); - SalaryAssert.isFalse(insuranceAccountBatchPO.getBillStatus() == BillStatusEnum.ARCHIVED.getValue(), SalaryI18nUtil.getI18nLabel(100504, "月份账单已归档")); + SalaryAssert.isFalse(Objects.equals(insuranceAccountBatchPO.getBillStatus(), BillStatusEnum.ARCHIVED.getValue()), SalaryI18nUtil.getI18nLabel(100504, "月份账单已归档")); insuranceAccountBatchPO.setBillStatus(BillStatusEnum.ARCHIVED.getValue()); - SiAccountEncrypt.encryptInsuranceAccountBatch(insuranceAccountBatchPO); + encryptUtil.encrypt(insuranceAccountBatchPO, InsuranceAccountBatchPO.class); getInsuranceAccountBatchMapper().updateById(insuranceAccountBatchPO); //日志记录 // LoggerContext insuranceSchemeContext = new LoggerContext(); @@ -1560,7 +1613,7 @@ public class SIAccountBiz extends Service { // SalaryPageUtil.start(queryParam.getCurrent(),queryParam.getPageSize()); List insuranceAccountDetailPOS = getInsuranceAccountDetailMapper().selectList(queryParam.getBillMonth(), StringUtil.isBlank(queryParam.getPaymentOrganization()) ? null : Long.valueOf(queryParam.getPaymentOrganization())); - InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(insuranceAccountDetailPOS); + encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class); //获取扣缴义务人信息 List paymentList = MapperProxyFactory.getProxy(TaxAgentMapper.class).listAll(); diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index dc4529180..e8a5dc5eb 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -14,10 +14,7 @@ import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.encrypt.AESEncryptUtil; -import com.engine.salary.encrypt.siarchives.InsuranceArchivesFundSchemePOEncrypt; -import com.engine.salary.encrypt.siarchives.InsuranceArchivesOtherSchemePOEncrypt; -import com.engine.salary.encrypt.siarchives.InsuranceArchivesSocialSchemePOEncrypt; -import com.engine.salary.encrypt.sischeme.InsuranceSchemeDetailPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.siarchives.bo.InsuranceArchivesBO; import com.engine.salary.entity.siarchives.dto.InsuranceArchivesBaseDTO; @@ -81,6 +78,8 @@ public class SIArchivesBiz { Boolean needAuth; Collection taxAgentPOS; + private EncryptUtil encryptUtil = new EncryptUtil(); + private TaxAgentMapper getTaxAgentMapper() { return MapperProxyFactory.getProxy(TaxAgentMapper.class); } @@ -378,7 +377,7 @@ public class SIArchivesBiz { try { InsuranceSchemeDetailMapper insuranceSchemeDetailMapper = sqlSession.getMapper(InsuranceSchemeDetailMapper.class); List insuranceSchemeDetailPOS = insuranceSchemeDetailMapper.queryListByPrimaryIdIsPayment(schemeId, IsPaymentEnum.YES.getValue(), welfareType); - InsuranceSchemeDetailPOEncrypt.decryptList(insuranceSchemeDetailPOS); + encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); return insuranceSchemeDetailPOS; } finally { sqlSession.close(); @@ -417,7 +416,7 @@ public class SIArchivesBiz { .employeeId(employeeId) .paymentOrganization(paymentOrganization) .build()); - InsuranceArchivesOtherSchemePOEncrypt.decryptList(otherList); + encryptUtil.decryptList(otherList, InsuranceArchivesOtherSchemePO.class); InsuranceArchivesOtherSchemePO insuranceArchivesOtherSchemePO = otherList.size() != 0 ? otherList.get(0) : null; InsuranceArchivesOtherSchemeDTO data = InsuranceArchivesBO.convertOtherPOtoDTO(insuranceArchivesOtherSchemePO, employeeId); if (insuranceArchivesOtherSchemePO == null) { @@ -448,7 +447,7 @@ public class SIArchivesBiz { .employeeId(employeeId) .paymentOrganization(paymentOrganization) .build()); - InsuranceArchivesFundSchemePOEncrypt.decryptList(fundList); + encryptUtil.decryptList(fundList, InsuranceArchivesFundSchemePO.class); InsuranceArchivesFundSchemePO insuranceArchivesFundSchemePO = fundList.size() != 0 ? fundList.get(0) : null; InsuranceArchivesFundSchemeDTO data = InsuranceArchivesBO.convertFundPOtoDTO(insuranceArchivesFundSchemePO, employeeId); if (insuranceArchivesFundSchemePO == null) { @@ -494,7 +493,7 @@ public class SIArchivesBiz { .employeeId(employeeId) .paymentOrganization(paymentOrganization) .build()); - InsuranceArchivesSocialSchemePOEncrypt.decryptList(socialList); + encryptUtil.decryptList(socialList, InsuranceArchivesSocialSchemePO.class); return socialList.size() != 0 ? socialList.get(0) : null; } finally { sqlSession.close(); @@ -670,7 +669,7 @@ public class SIArchivesBiz { if (!checkWelBaseLimit(updateOtherInfo.getOtherSchemeId(),updateOtherInfo.getOtherPaymentBaseString())) { throw new SalaryRunTimeException("其他福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!"); } - InsuranceArchivesOtherSchemePOEncrypt.encryptItem(updateOtherInfo); + encryptUtil.encrypt(updateOtherInfo, InsuranceArchivesOtherSchemePO.class); otherSchemeMapper.updateById(updateOtherInfo); sqlSession.commit(); } else { @@ -722,7 +721,7 @@ public class SIArchivesBiz { if (!checkWelBaseLimit(updateFundInfo.getFundSchemeId(),updateFundInfo.getFundPaymentBaseString())) { throw new SalaryRunTimeException("公积金福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!"); } - InsuranceArchivesFundSchemePOEncrypt.encryptItem(updateFundInfo); + encryptUtil.encrypt(updateFundInfo, InsuranceArchivesFundSchemePO.class); fundSchemeMapper.updateById(updateFundInfo); sqlSession.commit(); @@ -783,7 +782,7 @@ public class SIArchivesBiz { if (!checkWelBaseLimit(updateSocialInfo.getSocialSchemeId(),updateSocialInfo.getSocialPaymentBaseString())) { throw new SalaryRunTimeException("社保福利明细中的基数更新内容不符合相关基数上下限要求,请检查后重试!"); } - InsuranceArchivesSocialSchemePOEncrypt.encryptItem(updateSocialInfo); + encryptUtil.encrypt(updateSocialInfo, InsuranceArchivesSocialSchemePO.class); socialSchemeMapper.updateById(updateSocialInfo); sqlSession.commit(); @@ -837,7 +836,7 @@ public class SIArchivesBiz { if (isPaymentList.size() > 0) { InsuranceSchemeDetailPO insuranceSchemeDetailPO = isPaymentList.get(0); - InsuranceSchemeDetailPOEncrypt.decryptItem(insuranceSchemeDetailPO); + encryptUtil.decrypt(insuranceSchemeDetailPO, InsuranceSchemeDetailPO.class); String lowerLimit = "0.000".equals(insuranceSchemeDetailPO.getLowerLimit()) ? null : insuranceSchemeDetailPO.getLowerLimit(); String upperLimit = "0.000".equals(insuranceSchemeDetailPO.getUpperLimit()) ? null : insuranceSchemeDetailPO.getUpperLimit(); if (lowerLimit != null && lowerLimit.length() > 0 && Double.parseDouble(entry.getValue()) < Double.parseDouble(lowerLimit)) { @@ -884,6 +883,11 @@ public class SIArchivesBiz { request.setDepartmentIds(Arrays.stream(param.getDepartmentIdsStr().split(",")).map(BigDecimal::new).collect(Collectors.toList())); } + if (StringUtils.isNotBlank(param.getSubcompanyIdsStr())) { + request.setSubcompanyIds(Arrays.stream(param.getSubcompanyIdsStr().split(",")).map(BigDecimal::new).collect(Collectors.toList())); + } + + if (StringUtils.isNotBlank(param.getPositionsStr())) { request.setPositions(Arrays.stream(param.getPositionsStr().split(",")).map(BigDecimal::new).collect(Collectors.toList())); } @@ -962,14 +966,13 @@ public class SIArchivesBiz { pageInfo.setTotal(page.size()); pageInfo.setList(SalaryPageUtil.subList(pageInfo.getPageNum(), pageInfo.getPageSize(), page)); } else { - SalaryPageUtil.start(param.getCurrent(), param.getPageSize()); -// List page = socialSchemeMapper.listPageEmployeePOS(param); log.info("从数据库获取档案列表数据开始"); sw.start("获取档案列表数据"); page = socialSchemeMapper.queryEmployeeList(param); sw.stop(); log.info("从数据库获取档案列表数据完成!"); - pageInfo = new PageInfo<>(page, InsuranceArchivesEmployeePO.class); + pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), + page, InsuranceArchivesEmployeePO.class); } List> records = null; log.info("buildTableData方法处理福利档案列表数据开始"); @@ -1072,13 +1075,13 @@ public class SIArchivesBiz { insuranceArchivesEmployeePOS.forEach(item -> { List socialList = socialSchemeMapper.getSocialByEmployeeId(Collections.singletonList(item.getEmployeeId())); - InsuranceArchivesSocialSchemePOEncrypt.decryptList(socialList); + encryptUtil.decryptList(socialList, InsuranceArchivesSocialSchemePO.class); // InsuranceArchivesSocialSchemePO socialItem = socialList.size() != 0 ? socialList.get(0) : null; List fundList = fundSchemeMapper.getFundByEmployeeId(Collections.singletonList(item.getEmployeeId())); - InsuranceArchivesFundSchemePOEncrypt.decryptList(fundList); + encryptUtil.decryptList(fundList, InsuranceArchivesFundSchemePO.class); // InsuranceArchivesFundSchemePO fundItem = fundList.size() != 0 ? fundList.get(0) : null; List otherList = otherSchemeMapper.getOtherByEmployeeId(Collections.singletonList(item.getEmployeeId())); - InsuranceArchivesOtherSchemePOEncrypt.decryptList(otherList); + encryptUtil.decryptList(otherList, InsuranceArchivesOtherSchemePO.class); // InsuranceArchivesOtherSchemePO otherItem = otherList.size() != 0 ? otherList.get(0) : null; if (socialList.size() > 0) { for (InsuranceArchivesSocialSchemePO socialSchemePO : socialList) { @@ -1184,13 +1187,13 @@ public class SIArchivesBiz { InsuranceSchemeMapper insuranceSchemeMapper = sqlSession.getMapper(InsuranceSchemeMapper.class); // List employeeIds = insuranceArchivesEmployeePOS.stream().map(InsuranceArchivesEmployeePO::getEmployeeId).collect(Collectors.toList()); - Map socialSchemePOMap = InsuranceArchivesSocialSchemePOEncrypt.decryptList(this.getSocialByEmployeeIdAndPayOrg(insuranceArchivesEmployeePOS)) + Map socialSchemePOMap = encryptUtil.decryptList(this.getSocialByEmployeeIdAndPayOrg(insuranceArchivesEmployeePOS), InsuranceArchivesSocialSchemePO.class) .stream().collect(Collectors.toMap(InsuranceArchivesSocialSchemePO::getId, Function.identity())); - Map fundSchemePOMap = InsuranceArchivesFundSchemePOEncrypt.decryptList(this.getFundByEmployeeIdAndPayOrg(insuranceArchivesEmployeePOS)) + Map fundSchemePOMap = encryptUtil.decryptList(this.getFundByEmployeeIdAndPayOrg(insuranceArchivesEmployeePOS), InsuranceArchivesFundSchemePO.class) .stream().collect(Collectors.toMap(InsuranceArchivesFundSchemePO::getId, Function.identity())); List otherByEmployeeList = this.getOtherByEmployeeIdAndPayOrg(insuranceArchivesEmployeePOS); - InsuranceArchivesOtherSchemePOEncrypt.decryptList(otherByEmployeeList); + encryptUtil.decryptList(otherByEmployeeList, InsuranceArchivesOtherSchemePO.class); Map otherSchemePOMap = otherByEmployeeList .stream().collect(Collectors.toMap(InsuranceArchivesOtherSchemePO::getId, Function.identity())); insuranceArchivesEmployeePOS.forEach(item -> { @@ -1437,16 +1440,16 @@ public class SIArchivesBiz { Map socialMap = new HashMap<>(); Map funMap = new HashMap<>(); Map otherMap = new HashMap<>(); - List socialPOS = InsuranceArchivesSocialSchemePOEncrypt.decryptList(this.getSocialByEmployeeIdAndPayOrg(insuranceArchivesEmployeePOS)); + List socialPOS = encryptUtil.decryptList(this.getSocialByEmployeeIdAndPayOrg(insuranceArchivesEmployeePOS), InsuranceArchivesSocialSchemePO.class); if (CollectionUtils.isNotEmpty(socialPOS)) { socialMap = socialPOS.stream().collect(Collectors.toMap(InsuranceArchivesSocialSchemePO::getEmployeeId, Function.identity())); } - List fundPOS = InsuranceArchivesFundSchemePOEncrypt.decryptList(this.getFundByEmployeeIdAndPayOrg(insuranceArchivesEmployeePOS)); + List fundPOS = encryptUtil.decryptList(this.getFundByEmployeeIdAndPayOrg(insuranceArchivesEmployeePOS), InsuranceArchivesFundSchemePO.class); if (CollectionUtils.isNotEmpty(fundPOS)) { funMap = fundPOS.stream().collect(Collectors.toMap(InsuranceArchivesFundSchemePO::getEmployeeId, Function.identity())); } List otherPOS = this.getOtherByEmployeeIdAndPayOrg(insuranceArchivesEmployeePOS); - InsuranceArchivesOtherSchemePOEncrypt.decryptList(otherPOS); + encryptUtil.decryptList(otherPOS, InsuranceArchivesOtherSchemePO.class); if (CollectionUtils.isNotEmpty(otherPOS)) { otherMap = otherPOS.stream().collect(Collectors.toMap(InsuranceArchivesOtherSchemePO::getEmployeeId, Function.identity())); } diff --git a/src/com/engine/salary/biz/SISchemeBiz.java b/src/com/engine/salary/biz/SISchemeBiz.java index 1ca41d542..b1596254f 100644 --- a/src/com/engine/salary/biz/SISchemeBiz.java +++ b/src/com/engine/salary/biz/SISchemeBiz.java @@ -3,7 +3,7 @@ package com.engine.salary.biz; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.encrypt.AESEncryptUtil; -import com.engine.salary.encrypt.sischeme.InsuranceSchemeDetailPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.sicategory.po.ICategoryPO; import com.engine.salary.entity.sischeme.bo.InsuranceSchemeBO; import com.engine.salary.entity.sischeme.dto.InsuranceSchemeDTO; @@ -42,6 +42,8 @@ public class SISchemeBiz { return SqlProxyHandle.getProxy(SIAccountUtilMapper.class); } + private EncryptUtil encryptUtil = new EncryptUtil(); + /** * 获取社保方案 * @@ -150,7 +152,7 @@ public class SISchemeBiz { try { InsuranceSchemeDetailMapper insuranceSchemeDetailMapper = sqlSession.getMapper(InsuranceSchemeDetailMapper.class); InsuranceSchemeDetailPO insuranceSchemeDetailPO = insuranceSchemeDetailMapper.getByPPI(primaryId, paymentScope, insuranceId); - InsuranceSchemeDetailPOEncrypt.decryptItem(insuranceSchemeDetailPO); + encryptUtil.decrypt(insuranceSchemeDetailPO, InsuranceSchemeDetailPO.class); return insuranceSchemeDetailPO; } finally { sqlSession.close(); @@ -231,7 +233,7 @@ public class SISchemeBiz { try { InsuranceSchemeDetailMapper insuranceSchemeDetailMapper = sqlSession.getMapper(InsuranceSchemeDetailMapper.class); List insuranceSchemeDetailPOS = insuranceSchemeDetailMapper.queryListBySchemeId(primaryId); - InsuranceSchemeDetailPOEncrypt.decryptList(insuranceSchemeDetailPOS); + encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); return decryptSchemeDetailList(insuranceSchemeDetailPOS); } finally { sqlSession.close(); @@ -271,7 +273,7 @@ public class SISchemeBiz { //保存福利项目明细表 InsuranceSchemeDetailMapper insuranceSchemeDetailMapper = sqlSession.getMapper(InsuranceSchemeDetailMapper.class); List insuranceSchemeDetailPOS = InsuranceSchemeBO.convertToInsuranceSchemeDetailPoList(saveParam.getInsuranceSchemeDetailList(), employeeId, insuranceSchemePO.getId()); - InsuranceSchemeDetailPOEncrypt.encryptList(insuranceSchemeDetailPOS); + encryptUtil.encryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); insuranceSchemeDetailPOS.forEach(insuranceSchemeDetailMapper::insert); sqlSession.commit(); @@ -325,7 +327,7 @@ public class SISchemeBiz { insuranceSchemeDetailMapper.batchDeleteByPrimaryIds(Collections.singleton(updateParam.getInsuranceScheme().getId())); //更新明细表 List insuranceSchemeDetailPOS = InsuranceSchemeBO.convertToInsuranceSchemeDetailPoList(updateParam.getInsuranceSchemeDetailList(), employeeId, insuranceSchemePO.getId()); - InsuranceSchemeDetailPOEncrypt.encryptList(insuranceSchemeDetailPOS); + encryptUtil.encryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); insuranceSchemeDetailPOS.forEach(insuranceSchemeDetailMapper::insert); //记录操作日志 @@ -410,7 +412,7 @@ public class SISchemeBiz { .validNum(item.getValidNum()) .build() ).collect(Collectors.toList()); - InsuranceSchemeDetailPOEncrypt.encryptList(detailPOS); + encryptUtil.encryptList(detailPOS, InsuranceSchemeDetailPO.class); detailPOS.forEach(insuranceSchemeDetailMapper::insert); } @@ -432,7 +434,7 @@ public class SISchemeBiz { try { InsuranceSchemeDetailMapper insuranceSchemeDetailMapper = sqlSession.getMapper(InsuranceSchemeDetailMapper.class); List insuranceSchemeDetailPOList = insuranceSchemeDetailMapper.queryListByInsuranceIdIsPayment(insuranceId, isPayment); - InsuranceSchemeDetailPOEncrypt.decryptList(insuranceSchemeDetailPOList); + encryptUtil.decryptList(insuranceSchemeDetailPOList, InsuranceSchemeDetailPO.class); return insuranceSchemeDetailPOList; } finally { sqlSession.close(); diff --git a/src/com/engine/salary/biz/SalaryArchiveItemBiz.java b/src/com/engine/salary/biz/SalaryArchiveItemBiz.java index e36c02296..5c43e7086 100644 --- a/src/com/engine/salary/biz/SalaryArchiveItemBiz.java +++ b/src/com/engine/salary/biz/SalaryArchiveItemBiz.java @@ -1,7 +1,6 @@ package com.engine.salary.biz; -import com.engine.salary.encrypt.archive.SalaryArchiveItemPOEncrypt; -import com.engine.salary.encrypt.archive.SalaryItemAdjustRecordListDTOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemQueryParam; import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam; @@ -18,13 +17,14 @@ import java.util.ArrayList; import java.util.List; public class SalaryArchiveItemBiz { + public EncryptUtil encryptUtil = new EncryptUtil(); public List getCurrentEffectiveItemList(SalaryArchiveItemQueryParam build) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); List salaryArchiveItemPOS = mapper.listByParam(build); - return SalaryArchiveItemPOEncrypt.decryptSalaryArchiveItemPOList(salaryArchiveItemPOS); + return encryptUtil.decryptList(salaryArchiveItemPOS, SalaryArchiveItemPO.class); } finally { sqlSession.close(); } @@ -35,7 +35,7 @@ public class SalaryArchiveItemBiz { try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); List salaryArchiveItemPOS = mapper.listByParam(build); - return SalaryArchiveItemPOEncrypt.decryptSalaryArchiveItemPOList(salaryArchiveItemPOS); + return encryptUtil.decryptList(salaryArchiveItemPOS, SalaryArchiveItemPO.class); } finally { sqlSession.close(); } @@ -45,7 +45,7 @@ public class SalaryArchiveItemBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); - return SalaryArchiveItemPOEncrypt.decryptSalaryArchiveItemPO(mapper.getById(salaryArchiveItemId)); + return encryptUtil.decrypt(mapper.getById(salaryArchiveItemId), SalaryArchiveItemPO.class); } finally { sqlSession.close(); } @@ -56,15 +56,15 @@ public class SalaryArchiveItemBiz { try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); List ineffectiveSalaryItems = new ArrayList<>(); - if(CollectionUtils.isNotEmpty(build.getSalaryArchivesIds())){ + if (CollectionUtils.isNotEmpty(build.getSalaryArchivesIds())) { List salaryArchivesIds = (List) build.getSalaryArchivesIds(); - List> partition = Lists.partition(salaryArchivesIds,1000); + List> partition = Lists.partition(salaryArchivesIds, 1000); partition.forEach(list -> { build.setSalaryArchivesIds(list); ineffectiveSalaryItems.addAll(mapper.getIneffectiveSalaryItems(build)); }); } - return SalaryArchiveItemPOEncrypt.decryptSalaryArchiveItemPOList(ineffectiveSalaryItems); + return encryptUtil.decryptList(ineffectiveSalaryItems, SalaryArchiveItemPO.class); } finally { sqlSession.close(); } @@ -75,7 +75,7 @@ public class SalaryArchiveItemBiz { try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); List effectiveSalaryItems = mapper.getEffectiveSalaryItems(build); - return SalaryArchiveItemPOEncrypt.decryptSalaryArchiveItemPOList(effectiveSalaryItems); + return encryptUtil.decryptList(effectiveSalaryItems, SalaryArchiveItemPO.class); } finally { sqlSession.close(); } @@ -86,7 +86,7 @@ public class SalaryArchiveItemBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); - List> partition = Lists.partition(effectiveSalaryItemDels, 999); + List> partition = Lists.partition(effectiveSalaryItemDels, 999); partition.forEach(mapper::deleteBatchIds); sqlSession.commit(); } finally { @@ -95,13 +95,13 @@ public class SalaryArchiveItemBiz { } public void batchInsert(List salaryArchiveItemNews) { - if(CollectionUtils.isEmpty(salaryArchiveItemNews)){ + if (CollectionUtils.isEmpty(salaryArchiveItemNews)) { return; } SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); - SalaryArchiveItemPOEncrypt.encryptSalaryArchiveItemPOList(salaryArchiveItemNews); + encryptUtil.encryptList(salaryArchiveItemNews, SalaryArchiveItemPO.class); List> partition = Lists.partition(salaryArchiveItemNews, 100); partition.forEach(mapper::batchInsert); sqlSession.commit(); @@ -114,7 +114,7 @@ public class SalaryArchiveItemBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); - SalaryArchiveItemPOEncrypt.encryptSalaryArchiveItemPO(salaryArchiveItem); + encryptUtil.encrypt(salaryArchiveItem, SalaryArchiveItemPO.class); mapper.update(salaryArchiveItem); sqlSession.commit(); } finally { @@ -127,7 +127,7 @@ public class SalaryArchiveItemBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); - SalaryArchiveItemPOEncrypt.encryptSalaryArchiveItemPO(salaryArchiveItem); + encryptUtil.encrypt(salaryArchiveItem, SalaryArchiveItemPO.class); mapper.updateIgnoreNull(salaryArchiveItem); sqlSession.commit(); } finally { @@ -140,7 +140,7 @@ public class SalaryArchiveItemBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); - return SalaryItemAdjustRecordListDTOEncrypt.decryptSalaryItemAdjustRecordListDTOList(mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds)); + return encryptUtil.decryptList(mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds), SalaryItemAdjustRecordListDTO.class); } finally { sqlSession.close(); } @@ -160,11 +160,12 @@ public class SalaryArchiveItemBiz { public PageInfo salaryItemAdjustRecordListPage(SalaryItemAdjustRecordQueryParam queryParam, List salaryItemIds) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); SalaryArchiveItemMapper mapper = sqlSession.getMapper(SalaryArchiveItemMapper.class); List salaryItemAdjustRecordListDTOS = mapper.salaryItemAdjustRecordList(queryParam, salaryItemIds); - SalaryItemAdjustRecordListDTOEncrypt.decryptSalaryItemAdjustRecordListDTOList(salaryItemAdjustRecordListDTOS); - PageInfo page = new PageInfo(salaryItemAdjustRecordListDTOS, SalaryItemAdjustRecordListDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + salaryItemAdjustRecordListDTOS, + SalaryItemAdjustRecordListDTO.class); + encryptUtil.decryptList(page.getList(), SalaryItemAdjustRecordListDTO.class); return page; } finally { sqlSession.close(); diff --git a/src/com/engine/salary/biz/SalaryItemBiz.java b/src/com/engine/salary/biz/SalaryItemBiz.java index ef3ed6d56..3309bf874 100644 --- a/src/com/engine/salary/biz/SalaryItemBiz.java +++ b/src/com/engine/salary/biz/SalaryItemBiz.java @@ -5,7 +5,7 @@ import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.enums.SalaryOnOffEnum; import com.engine.salary.mapper.salaryitem.SalaryItemMapper; import com.engine.salary.util.page.PageInfo; -import com.github.pagehelper.PageHelper; +import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.ibatis.session.SqlSession; @@ -98,10 +98,9 @@ public class SalaryItemBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalaryItemMapper mapper = sqlSession.getMapper(SalaryItemMapper.class); -// SalaryPageUtil.start(searchParam.getCurrent(), searchParam.getPageSize()); - PageHelper.startPage(searchParam.getCurrent(), searchParam.getPageSize()); List salaryItemPOList = mapper.listByParam(searchParam); - return new PageInfo(salaryItemPOList); + return SalaryPageUtil.buildPage(searchParam.getCurrent(), searchParam.getPageSize(), + salaryItemPOList, SalaryItemPO.class); } finally { sqlSession.close(); } diff --git a/src/com/engine/salary/biz/SalarySendRangeObjBiz.java b/src/com/engine/salary/biz/SalarySendRangeObjBiz.java new file mode 100644 index 000000000..05ccaaadb --- /dev/null +++ b/src/com/engine/salary/biz/SalarySendRangeObjBiz.java @@ -0,0 +1,71 @@ +package com.engine.salary.biz; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryBill.dto.SalarySendUserInfoDTO; +import com.engine.salary.entity.salaryBill.po.SalarySendRangeObj; +import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeTaxAgentDTO; +import com.engine.salary.mapper.salarybill.SalarySendRangeObjMapper; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.service.impl.TaxAgentServiceImpl; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.ibatis.session.SqlSession; +import weaver.conn.mybatis.MyBatisFactory; + +import java.util.*; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.stream.Collectors; + +import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; + +public class SalarySendRangeObjBiz { + private TaxAgentService getTaxAgentService() { + return ServiceUtil.getService(TaxAgentServiceImpl.class); + } + + public R applyMapper(Function mapper) { + try (SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession()) { + final SalarySendRangeObjMapper salarySendRangeObjMapper = sqlSession.getMapper(SalarySendRangeObjMapper.class); + R apply = mapper.apply(salarySendRangeObjMapper); + sqlSession.commit(); + return apply; + } + } + + public void runMapper(Consumer mapper) { + try (SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession()) { + final SalarySendRangeObjMapper salarySendRangeObjMapper = sqlSession.getMapper(SalarySendRangeObjMapper.class); + mapper.accept(salarySendRangeObjMapper); + sqlSession.commit(); + } + } + + public List getSalarySendUserInfoDTOs(List employees) { + List userDTOs = applyMapper(mapper -> mapper.getUserInfoByEmployeeIds(employees)); + Map userMap = userDTOs.stream() + .collect(Collectors.toMap(SalarySendUserInfoDTO::getResourceId, Function.identity())); + + List employeeIds = userDTOs.stream() + .map(SalarySendUserInfoDTO::getResourceId) + .collect(Collectors.toList()); + Collection employeeAgents + = getTaxAgentService().listAllTaxAgentsAsRange(employeeIds); + for (TaxAgentEmployeeTaxAgentDTO employeeAgent : employeeAgents) { + SalarySendUserInfoDTO info = userMap.get(employeeAgent.getEmployeeId()); + if (info != null) { + if (CollectionUtils.isEmpty(info.getTaxAgentIds())) { + info.setTaxAgentIds(new ArrayList<>()); + } + info.getTaxAgentIds().addAll(Optional.ofNullable(employeeAgent.getTaxAgentIds()).orElse(Collections.emptyList())); + } + } + return userDTOs; + } + + public void replaceAllByRangeId(Long rangeId, List rangeObjs) { + runMapper(mapper -> { + mapper.deleteByRangeIds(Collections.singletonList(rangeId), DEFAULT_TENANT_KEY); + mapper.batchInsert(rangeObjs); + }); + } +} diff --git a/src/com/engine/salary/biz/SalarySobCheckRuleBiz.java b/src/com/engine/salary/biz/SalarySobCheckRuleBiz.java index 88ed8f4bf..e11c3d37d 100644 --- a/src/com/engine/salary/biz/SalarySobCheckRuleBiz.java +++ b/src/com/engine/salary/biz/SalarySobCheckRuleBiz.java @@ -4,10 +4,9 @@ import com.engine.salary.entity.salarysob.param.SalarySobCheckRuleQueryParam; import com.engine.salary.entity.salarysob.po.SalarySobCheckRulePO; import com.engine.salary.mapper.salarysob.SalarySobCheckRuleMapper; import com.engine.salary.util.page.PageInfo; - +import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; -import com.engine.salary.util.page.SalaryPageUtil; import org.apache.ibatis.session.SqlSession; import weaver.conn.mybatis.MyBatisFactory; @@ -100,10 +99,9 @@ public class SalarySobCheckRuleBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SalarySobCheckRuleMapper mapper = sqlSession.getMapper(SalarySobCheckRuleMapper.class); - SalaryPageUtil.start(param.getCurrent(), param.getPageSize()); List list = mapper.listByParam(param); - PageInfo pageInfo = new PageInfo(list, SalarySobCheckRulePO.class); - return pageInfo; + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), + list, SalarySobCheckRulePO.class); } finally { sqlSession.close(); } diff --git a/src/com/engine/salary/biz/SpecialAddDeductionBiz.java b/src/com/engine/salary/biz/SpecialAddDeductionBiz.java index cece96e18..7fc30292e 100644 --- a/src/com/engine/salary/biz/SpecialAddDeductionBiz.java +++ b/src/com/engine/salary/biz/SpecialAddDeductionBiz.java @@ -1,13 +1,12 @@ package com.engine.salary.biz; -import com.engine.salary.encrypt.datacollection.SpecialAddDeductionEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.dto.SpecialAddDeductionListDTO; import com.engine.salary.entity.datacollection.dto.SpecialAddDeductionRecordDTO; import com.engine.salary.entity.datacollection.param.SpecialAddDeductionQueryParam; import com.engine.salary.entity.datacollection.po.SpecialAddDeductionPO; import com.engine.salary.mapper.datacollection.SpecialAddDeductionMapper; import com.engine.salary.util.db.MapperProxyFactory; -import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.ibatis.session.SqlSession; @@ -18,6 +17,8 @@ import java.util.*; import java.util.stream.Collectors; public class SpecialAddDeductionBiz extends BaseBean { + private EncryptUtil encryptUtil = new EncryptUtil(); + private SpecialAddDeductionMapper mapper() { return MapperProxyFactory.getProxy(SpecialAddDeductionMapper.class); } @@ -32,26 +33,26 @@ public class SpecialAddDeductionBiz extends BaseBean { try (SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession()) { SpecialAddDeductionMapper mapper = sqlSession.getMapper(SpecialAddDeductionMapper.class); SpecialAddDeductionPO byId = mapper.getById(id); - return SpecialAddDeductionEncrypt.decrypt(byId); + return encryptUtil.decrypt(byId, SpecialAddDeductionPO.class); } } public List listDTOByParam(SpecialAddDeductionQueryParam param) { List specialAddDeductionRecordDTOS = mapper().listDtoByParam(param); - return SpecialAddDeductionEncrypt.decrypt(specialAddDeductionRecordDTOS); + return encryptUtil.decryptList(specialAddDeductionRecordDTOS, SpecialAddDeductionRecordDTO.class); } public List listByParam(SpecialAddDeductionQueryParam param) { List specialAddDeductionListDTOS = mapper().listByParam(param); - return SpecialAddDeductionEncrypt.decrypt(specialAddDeductionListDTOS); + return encryptUtil.decryptList(specialAddDeductionListDTOS, SpecialAddDeductionListDTO.class); } public List listByTaxAgentIds(List taxAgentIds) { try (SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession()) { SpecialAddDeductionMapper mapper = sqlSession.getMapper(SpecialAddDeductionMapper.class); List pos = mapper.listByTaxAgentIds(taxAgentIds); - return SpecialAddDeductionEncrypt.decrypt(pos); + return encryptUtil.decryptList(pos, SpecialAddDeductionPO.class); } } @@ -68,7 +69,7 @@ public class SpecialAddDeductionBiz extends BaseBean { } try (SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession()) { SpecialAddDeductionMapper mapper = sqlSession.getMapper(SpecialAddDeductionMapper.class); - SpecialAddDeductionEncrypt.encrypt(param); + encryptUtil.encryptList(param, SpecialAddDeductionPO.class); List> partition = Lists.partition(param, 100); partition.forEach(mapper::batchInsert); sqlSession.commit(); @@ -88,7 +89,7 @@ public class SpecialAddDeductionBiz extends BaseBean { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { SpecialAddDeductionMapper mapper = sqlSession.getMapper(SpecialAddDeductionMapper.class); - SpecialAddDeductionEncrypt.encrypt(param); + encryptUtil.encryptList(param, SpecialAddDeductionPO.class); List> partition = Lists.partition(param, 100); partition.forEach(mapper::updateBatchSelective); sqlSession.commit(); @@ -166,7 +167,7 @@ public class SpecialAddDeductionBiz extends BaseBean { .stream() .filter(Objects::nonNull) .filter(s -> s.getEmployeeId() != null) - .map(SpecialAddDeductionEncrypt::decrypt) + .map(item -> encryptUtil.decrypt(item, SpecialAddDeductionPO.class)) .collect(Collectors.toList()); } } diff --git a/src/com/engine/salary/encrypt/EncryptSetting.java b/src/com/engine/salary/encrypt/EncryptSetting.java new file mode 100644 index 000000000..4954537fd --- /dev/null +++ b/src/com/engine/salary/encrypt/EncryptSetting.java @@ -0,0 +1,16 @@ +package com.engine.salary.encrypt; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EncryptSetting { + + public boolean open; + +} \ No newline at end of file diff --git a/src/com/engine/salary/encrypt/EncryptUtil.java b/src/com/engine/salary/encrypt/EncryptUtil.java new file mode 100644 index 000000000..8cc5c0606 --- /dev/null +++ b/src/com/engine/salary/encrypt/EncryptUtil.java @@ -0,0 +1,131 @@ +package com.engine.salary.encrypt; + + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.annotation.Encrypt; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.hrm.User; + +import java.lang.reflect.Field; +import java.util.*; +import java.util.stream.Collectors; + +@Slf4j +public class EncryptUtil { + + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } + + public T encrypt(T data, Class clazz) { + boolean encryptIsOpen = getSalarySysConfService(null).encryptIsOpen(); + if (!encryptIsOpen) { + return data; + } + try { + List fieldList = Arrays.stream(clazz.getDeclaredFields()).filter(field -> field.isAnnotationPresent(Encrypt.class)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(fieldList)) { + for (Field field : fieldList) { + Field declaredField = data.getClass().getDeclaredField(field.getName()); + declaredField.setAccessible(true); + String fieldValue = (String) declaredField.get(data); + if (StringUtils.isNotBlank(fieldValue)) { + String encryptValue = AESEncryptUtil.encrypt(fieldValue); + declaredField.set(data, encryptValue); + } + } + } + return data; + } catch (Exception e) { + log.error("加密异常", e); + throw new SalaryRunTimeException("加密异常"); + } + } + + public List encryptList(List dataList, Class clazz) { + boolean encryptIsOpen = getSalarySysConfService(null).encryptIsOpen(); + if (!encryptIsOpen) { + return dataList; + } + try { + List fieldList = Arrays.stream(clazz.getDeclaredFields()).filter(field -> field.isAnnotationPresent(Encrypt.class)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(fieldList)) { + List> values = new ArrayList<>(); + for (T data : dataList) { + for (Field field : fieldList) { + Field declaredField = data.getClass().getDeclaredField(field.getName()); + declaredField.setAccessible(true); + String fieldValue = (String) declaredField.get(data); + if (StringUtils.isNotBlank(fieldValue)) { + String encryptValue = AESEncryptUtil.encrypt(fieldValue); + declaredField.set(data, encryptValue); + } + } + } + + } + return dataList; + } catch (Exception e) { + log.error("批量加密异常", e); + throw new SalaryRunTimeException("批量加密异常"); + } + } + + public T decrypt(T data, Class clazz) { + boolean encryptIsOpen = getSalarySysConfService(null).encryptIsOpen(); + if (!encryptIsOpen) { + return data; + } + try { + List fieldList = Arrays.stream(clazz.getDeclaredFields()).filter(field -> field.isAnnotationPresent(Encrypt.class)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(fieldList)) { + for (Field field : fieldList) { + Field declaredField = data.getClass().getDeclaredField(field.getName()); + declaredField.setAccessible(true); + String fieldValue = (String) declaredField.get(data); + if (StringUtils.isNotBlank(fieldValue)) { + String encryptValue = AESEncryptUtil.decrypt(fieldValue); + declaredField.set(data, encryptValue); + } + } + } + return data; + } catch (Exception e) { + log.error("解密异常", e); + throw new SalaryRunTimeException("解密异常"); + } + } + + public List decryptList(List dataList, Class clazz) { + boolean encryptIsOpen = getSalarySysConfService(null).encryptIsOpen(); + if (!encryptIsOpen) { + return dataList; + } + try { + List fieldList = Arrays.stream(clazz.getDeclaredFields()).filter(field -> field.isAnnotationPresent(Encrypt.class)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(fieldList)) { + for (T data : dataList) { + for (Field field : fieldList) { + Field declaredField = data.getClass().getDeclaredField(field.getName()); + declaredField.setAccessible(true); + String fieldValue = (String) declaredField.get(data); + if (StringUtils.isNotBlank(fieldValue)) { + String encryptValue = AESEncryptUtil.decrypt(fieldValue); + declaredField.set(data, encryptValue); + } + } + } + } + return dataList; + } catch (Exception e) { + log.error("批量解密异常", e); + throw new SalaryRunTimeException("批量解密异常"); + } + } + +} diff --git a/src/com/engine/salary/encrypt/archive/SalaryArchiveItemPOEncrypt.java b/src/com/engine/salary/encrypt/archive/SalaryArchiveItemPOEncrypt.java index 98acfd230..b307616a8 100644 --- a/src/com/engine/salary/encrypt/archive/SalaryArchiveItemPOEncrypt.java +++ b/src/com/engine/salary/encrypt/archive/SalaryArchiveItemPOEncrypt.java @@ -10,6 +10,7 @@ import java.util.List; * 字段: * item_value */ +@Deprecated public class SalaryArchiveItemPOEncrypt { public static List encryptSalaryArchiveItemPOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/archive/SalaryItemAdjustRecordListDTOEncrypt.java b/src/com/engine/salary/encrypt/archive/SalaryItemAdjustRecordListDTOEncrypt.java index 3c3bb602a..404b0b3f4 100644 --- a/src/com/engine/salary/encrypt/archive/SalaryItemAdjustRecordListDTOEncrypt.java +++ b/src/com/engine/salary/encrypt/archive/SalaryItemAdjustRecordListDTOEncrypt.java @@ -5,6 +5,7 @@ import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import java.util.List; +@Deprecated public class SalaryItemAdjustRecordListDTOEncrypt { public static List decryptSalaryItemAdjustRecordListDTOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/datacollection/AddUpDeductionEncrypt.java b/src/com/engine/salary/encrypt/datacollection/AddUpDeductionEncrypt.java index 286e8047e..848c56ab2 100644 --- a/src/com/engine/salary/encrypt/datacollection/AddUpDeductionEncrypt.java +++ b/src/com/engine/salary/encrypt/datacollection/AddUpDeductionEncrypt.java @@ -16,7 +16,9 @@ import java.util.List; * add_up_illness_medical * add_up_infant_care */ +@Deprecated public class AddUpDeductionEncrypt { + @Deprecated public static List encryptAddUpDeductionList(List list) { list.forEach(item -> { item.setAddUpChildEducation(AESEncryptUtil.encrypt(item.getAddUpChildEducation())); @@ -30,6 +32,7 @@ public class AddUpDeductionEncrypt { return list; } + @Deprecated public static List decryptAddUpDeductionList(List list) { list.forEach(item -> { item.setAddUpChildEducation(AESEncryptUtil.decrypt(item.getAddUpChildEducation())); @@ -43,6 +46,7 @@ public class AddUpDeductionEncrypt { return list; } + @Deprecated public static AddUpDeduction encryptAddUpDeduction(AddUpDeduction item) { if(item == null) { return item; @@ -57,6 +61,7 @@ public class AddUpDeductionEncrypt { return item; } + @Deprecated public static AddUpDeduction decryptAddUpDeduction(AddUpDeduction item) { if(item == null) { return item; diff --git a/src/com/engine/salary/encrypt/datacollection/AddUpDeductionRecordStrDTOEncrypt.java b/src/com/engine/salary/encrypt/datacollection/AddUpDeductionRecordStrDTOEncrypt.java index 4dc13a349..0750a6422 100644 --- a/src/com/engine/salary/encrypt/datacollection/AddUpDeductionRecordStrDTOEncrypt.java +++ b/src/com/engine/salary/encrypt/datacollection/AddUpDeductionRecordStrDTOEncrypt.java @@ -16,6 +16,7 @@ import java.util.stream.Collectors; * add_up_housing_rent * add_up_support_elderly */ +@Deprecated public class AddUpDeductionRecordStrDTOEncrypt { public static List decryptAddUpDeductionRecordDTO(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/datacollection/AddUpDeductionStrDTOEncrypt.java b/src/com/engine/salary/encrypt/datacollection/AddUpDeductionStrDTOEncrypt.java index 163ec4b03..4877fe406 100644 --- a/src/com/engine/salary/encrypt/datacollection/AddUpDeductionStrDTOEncrypt.java +++ b/src/com/engine/salary/encrypt/datacollection/AddUpDeductionStrDTOEncrypt.java @@ -14,6 +14,7 @@ import java.util.List; * add_up_housing_rent * add_up_support_elderly */ +@Deprecated public class AddUpDeductionStrDTOEncrypt { public static void decryptAddUpDeductionList(List list) { if (list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/datacollection/AddUpSituationDTOEncrypt.java b/src/com/engine/salary/encrypt/datacollection/AddUpSituationDTOEncrypt.java index fb39e33e1..a8b369c80 100644 --- a/src/com/engine/salary/encrypt/datacollection/AddUpSituationDTOEncrypt.java +++ b/src/com/engine/salary/encrypt/datacollection/AddUpSituationDTOEncrypt.java @@ -3,7 +3,6 @@ package com.engine.salary.encrypt.datacollection; import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.entity.datacollection.dto.AddUpSituationDTO; -import java.util.ArrayList; import java.util.List; /** @@ -24,9 +23,10 @@ import java.util.List; * add_up_allowed_donation * add_up_advance_tax */ +@Deprecated public class AddUpSituationDTOEncrypt { public static List encryptAddUpSituationDTOList(List list) { - if(list == null || list.size() == 0) { + if (list == null || list.size() == 0) { return list; } list.forEach(item -> { @@ -53,7 +53,7 @@ public class AddUpSituationDTOEncrypt { } public static List decryptAddUpSituationDTOList(List list) { - if(list == null || list.size() == 0) { + if (list == null || list.size() == 0) { return list; } list.forEach(item -> { diff --git a/src/com/engine/salary/encrypt/datacollection/AddUpSituationEncrypt.java b/src/com/engine/salary/encrypt/datacollection/AddUpSituationEncrypt.java index fa2a72f07..b6debb195 100644 --- a/src/com/engine/salary/encrypt/datacollection/AddUpSituationEncrypt.java +++ b/src/com/engine/salary/encrypt/datacollection/AddUpSituationEncrypt.java @@ -23,6 +23,7 @@ import java.util.List; * add_up_allowed_donation * add_up_advance_tax */ +@Deprecated public class AddUpSituationEncrypt { public static List encryptAddUpSituationList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/datacollection/AddUpSituationRecordDTOEncrypt.java b/src/com/engine/salary/encrypt/datacollection/AddUpSituationRecordDTOEncrypt.java index dc5e0c086..dd39664f9 100644 --- a/src/com/engine/salary/encrypt/datacollection/AddUpSituationRecordDTOEncrypt.java +++ b/src/com/engine/salary/encrypt/datacollection/AddUpSituationRecordDTOEncrypt.java @@ -5,6 +5,7 @@ import com.engine.salary.entity.datacollection.dto.AddUpSituationRecordDTO; import java.util.List; +@Deprecated public class AddUpSituationRecordDTOEncrypt { public static List encryptAddUpSituationRecordDTOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/datacollection/OtherDeductionListDTOEncrypt.java b/src/com/engine/salary/encrypt/datacollection/OtherDeductionListDTOEncrypt.java index c7a1f9385..6d099a631 100644 --- a/src/com/engine/salary/encrypt/datacollection/OtherDeductionListDTOEncrypt.java +++ b/src/com/engine/salary/encrypt/datacollection/OtherDeductionListDTOEncrypt.java @@ -14,6 +14,7 @@ import java.util.List; * other_deduction * deduction_allowed_donation */ +@Deprecated public class OtherDeductionListDTOEncrypt { public static List encryptOtherDeductionListDTOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/datacollection/OtherDeductionPOEncrypt.java b/src/com/engine/salary/encrypt/datacollection/OtherDeductionPOEncrypt.java index ddfed66f5..bed9cd935 100644 --- a/src/com/engine/salary/encrypt/datacollection/OtherDeductionPOEncrypt.java +++ b/src/com/engine/salary/encrypt/datacollection/OtherDeductionPOEncrypt.java @@ -4,15 +4,7 @@ import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; import java.util.List; - -/** - * hrsa_other_deduction: 加解密 - * 字段: - * business_healthy_insurance - * tax_delay_endowment_insurance - * other_deduction - * deduction_allowed_donation - */ +@Deprecated public class OtherDeductionPOEncrypt { public static List encryptOtherDeductionPOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/datacollection/OtherDeductionRecordDTOEncrypt.java b/src/com/engine/salary/encrypt/datacollection/OtherDeductionRecordDTOEncrypt.java index 015a3741e..44fffcc1b 100644 --- a/src/com/engine/salary/encrypt/datacollection/OtherDeductionRecordDTOEncrypt.java +++ b/src/com/engine/salary/encrypt/datacollection/OtherDeductionRecordDTOEncrypt.java @@ -13,6 +13,7 @@ import java.util.List; * other_deduction * deduction_allowed_donation */ +@Deprecated public class OtherDeductionRecordDTOEncrypt { public static List encryptOtherDeductionRecordDTOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/datacollection/SpecialAddDeductionEncrypt.java b/src/com/engine/salary/encrypt/datacollection/SpecialAddDeductionEncrypt.java index c6169219c..448fb2010 100644 --- a/src/com/engine/salary/encrypt/datacollection/SpecialAddDeductionEncrypt.java +++ b/src/com/engine/salary/encrypt/datacollection/SpecialAddDeductionEncrypt.java @@ -1,13 +1,9 @@ package com.engine.salary.encrypt.datacollection; import com.engine.salary.encrypt.AESEncryptUtil; -import com.engine.salary.entity.datacollection.dto.SpecialAddDeductionRecordDTO; -import com.engine.salary.entity.datacollection.po.SpecialAddDeductionPO; import java.lang.reflect.Field; import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -22,6 +18,7 @@ import java.util.stream.Collectors; * serious_illness_treatment * infant_care */ +@Deprecated public class SpecialAddDeductionEncrypt { private static final List FIELDS = Arrays.asList( "childrenEducation", "continuingEducation", "supportingElder", "housingLoanInterest", diff --git a/src/com/engine/salary/encrypt/report/SalaryAcctResultReportPOEncrypt.java b/src/com/engine/salary/encrypt/report/SalaryAcctResultReportPOEncrypt.java index 37232d0e2..7c34d4dc9 100644 --- a/src/com/engine/salary/encrypt/report/SalaryAcctResultReportPOEncrypt.java +++ b/src/com/engine/salary/encrypt/report/SalaryAcctResultReportPOEncrypt.java @@ -8,6 +8,7 @@ import java.util.Collection; /** * 薪资核算报表 */ +@Deprecated public class SalaryAcctResultReportPOEncrypt { public static Collection encryptList(Collection list) { diff --git a/src/com/engine/salary/encrypt/salaryacct/ExcelAcctResultPOEncrypt.java b/src/com/engine/salary/encrypt/salaryacct/ExcelAcctResultPOEncrypt.java index 57b6cae02..c19d16689 100644 --- a/src/com/engine/salary/encrypt/salaryacct/ExcelAcctResultPOEncrypt.java +++ b/src/com/engine/salary/encrypt/salaryacct/ExcelAcctResultPOEncrypt.java @@ -6,6 +6,7 @@ import com.engine.salary.entity.salaryacct.po.ExcelAcctResultPO; import java.util.Collection; import java.util.List; +@Deprecated public class ExcelAcctResultPOEncrypt { public static Collection encryptList(Collection list) { diff --git a/src/com/engine/salary/encrypt/salaryacct/SalaryAcctResultPOEncrypt.java b/src/com/engine/salary/encrypt/salaryacct/SalaryAcctResultPOEncrypt.java index b7a61aaf7..b148d85ad 100644 --- a/src/com/engine/salary/encrypt/salaryacct/SalaryAcctResultPOEncrypt.java +++ b/src/com/engine/salary/encrypt/salaryacct/SalaryAcctResultPOEncrypt.java @@ -5,8 +5,10 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import java.util.List; +@Deprecated public class SalaryAcctResultPOEncrypt { + @Deprecated public static List encryptList(List list) { if(list == null || list.size() == 0) { return list; @@ -18,6 +20,7 @@ public class SalaryAcctResultPOEncrypt { return list; } + @Deprecated public static List decryptList(List list) { if(list == null || list.size() == 0) { return list; @@ -29,6 +32,7 @@ public class SalaryAcctResultPOEncrypt { return list; } + @Deprecated public static SalaryAcctResultPO encryptItem(SalaryAcctResultPO item) { if(item == null) { return item; @@ -37,6 +41,7 @@ public class SalaryAcctResultPOEncrypt { return item; } + @Deprecated public static SalaryAcctResultPO decryptItem(SalaryAcctResultPO item) { if(item == null) { return item; diff --git a/src/com/engine/salary/encrypt/siaccount/ExcelInsuranceDetailPOEncrypt.java b/src/com/engine/salary/encrypt/siaccount/ExcelInsuranceDetailPOEncrypt.java index 6d6a30776..592ba011a 100644 --- a/src/com/engine/salary/encrypt/siaccount/ExcelInsuranceDetailPOEncrypt.java +++ b/src/com/engine/salary/encrypt/siaccount/ExcelInsuranceDetailPOEncrypt.java @@ -30,6 +30,7 @@ import java.util.List; * other_sum * total */ +@Deprecated public class ExcelInsuranceDetailPOEncrypt { public static List encryptInsuranceAccountDetailPOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/siaccount/InsuranceAccountDetailPOEncrypt.java b/src/com/engine/salary/encrypt/siaccount/InsuranceAccountDetailPOEncrypt.java index 841140839..73153f629 100644 --- a/src/com/engine/salary/encrypt/siaccount/InsuranceAccountDetailPOEncrypt.java +++ b/src/com/engine/salary/encrypt/siaccount/InsuranceAccountDetailPOEncrypt.java @@ -30,6 +30,7 @@ import java.util.List; * other_sum * total */ +@Deprecated public class InsuranceAccountDetailPOEncrypt { public static List encryptInsuranceAccountDetailPOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/siaccount/InsuranceAccountDetailTempPOEncrypt.java b/src/com/engine/salary/encrypt/siaccount/InsuranceAccountDetailTempPOEncrypt.java index af3a86e42..5e5f32724 100644 --- a/src/com/engine/salary/encrypt/siaccount/InsuranceAccountDetailTempPOEncrypt.java +++ b/src/com/engine/salary/encrypt/siaccount/InsuranceAccountDetailTempPOEncrypt.java @@ -30,6 +30,7 @@ import java.util.List; * other_sum * total */ +@Deprecated public class InsuranceAccountDetailTempPOEncrypt { public static List encryptInsuranceAccountDetailTempPOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/siaccount/SiAccountEncrypt.java b/src/com/engine/salary/encrypt/siaccount/SiAccountEncrypt.java index 96bb1a9d7..73a627e5f 100644 --- a/src/com/engine/salary/encrypt/siaccount/SiAccountEncrypt.java +++ b/src/com/engine/salary/encrypt/siaccount/SiAccountEncrypt.java @@ -12,7 +12,9 @@ import java.util.List; * social_pay * fund_pay */ +@Deprecated public class SiAccountEncrypt { + @Deprecated public static List encryptInsuranceAccountBatchList(List list) { list.forEach(item -> { item.setOtherPay(AESEncryptUtil.encrypt(item.getOtherPay())); @@ -22,6 +24,7 @@ public class SiAccountEncrypt { return list; } + @Deprecated public static List decryptInsuranceAccountBatchList(List list) { if(list == null || list.size() == 0) { return list; @@ -34,6 +37,7 @@ public class SiAccountEncrypt { return list; } + @Deprecated public static InsuranceAccountBatchPO encryptInsuranceAccountBatch(InsuranceAccountBatchPO item) { if(item == null) { return item; @@ -44,6 +48,7 @@ public class SiAccountEncrypt { return item; } + @Deprecated public static InsuranceAccountBatchPO decryptInsuranceAccountBatch(InsuranceAccountBatchPO item) { if(item == null) { return item; diff --git a/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesFundSchemePOEncrypt.java b/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesFundSchemePOEncrypt.java index 5bc6a7d3e..18233ed58 100644 --- a/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesFundSchemePOEncrypt.java +++ b/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesFundSchemePOEncrypt.java @@ -5,6 +5,7 @@ import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; import java.util.List; +@Deprecated public class InsuranceArchivesFundSchemePOEncrypt { public static List encryptList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesOtherSchemePOEncrypt.java b/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesOtherSchemePOEncrypt.java index 071868571..d24b22e89 100644 --- a/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesOtherSchemePOEncrypt.java +++ b/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesOtherSchemePOEncrypt.java @@ -1,11 +1,11 @@ package com.engine.salary.encrypt.siarchives; import com.engine.salary.encrypt.AESEncryptUtil; -import com.engine.salary.entity.siaccount.po.InsuranceAccountBatchPO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; import java.util.List; +@Deprecated public class InsuranceArchivesOtherSchemePOEncrypt { public static List encryptList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesSocialSchemePOEncrypt.java b/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesSocialSchemePOEncrypt.java index 19cc358a5..7490ad352 100644 --- a/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesSocialSchemePOEncrypt.java +++ b/src/com/engine/salary/encrypt/siarchives/InsuranceArchivesSocialSchemePOEncrypt.java @@ -5,6 +5,7 @@ import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; import java.util.List; +@Deprecated public class InsuranceArchivesSocialSchemePOEncrypt { public static List encryptList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/siexport/AccountExportPOEncrypt.java b/src/com/engine/salary/encrypt/siexport/AccountExportPOEncrypt.java index 5684afec1..564993785 100644 --- a/src/com/engine/salary/encrypt/siexport/AccountExportPOEncrypt.java +++ b/src/com/engine/salary/encrypt/siexport/AccountExportPOEncrypt.java @@ -30,6 +30,7 @@ import java.util.List; * other_sum * total */ +@Deprecated public class AccountExportPOEncrypt { public static List encryptAccountExportPOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/siexport/ExcelAccountExportPOEncrypt.java b/src/com/engine/salary/encrypt/siexport/ExcelAccountExportPOEncrypt.java index 3121cc46d..d562ac937 100644 --- a/src/com/engine/salary/encrypt/siexport/ExcelAccountExportPOEncrypt.java +++ b/src/com/engine/salary/encrypt/siexport/ExcelAccountExportPOEncrypt.java @@ -30,6 +30,7 @@ import java.util.List; * other_sum * total */ +@Deprecated public class ExcelAccountExportPOEncrypt { public static List encryptExcelAccountExportPOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/sischeme/InsuranceSchemeDetailPOEncrypt.java b/src/com/engine/salary/encrypt/sischeme/InsuranceSchemeDetailPOEncrypt.java index 613c0a362..2f75436c8 100644 --- a/src/com/engine/salary/encrypt/sischeme/InsuranceSchemeDetailPOEncrypt.java +++ b/src/com/engine/salary/encrypt/sischeme/InsuranceSchemeDetailPOEncrypt.java @@ -5,6 +5,7 @@ import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; import java.util.List; +@Deprecated public class InsuranceSchemeDetailPOEncrypt { public static List encryptList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/taxdeclaration/TaxDeclarationDetailEncrypt.java b/src/com/engine/salary/encrypt/taxdeclaration/TaxDeclarationDetailEncrypt.java index 0e912c4ba..b1bde8463 100644 --- a/src/com/engine/salary/encrypt/taxdeclaration/TaxDeclarationDetailEncrypt.java +++ b/src/com/engine/salary/encrypt/taxdeclaration/TaxDeclarationDetailEncrypt.java @@ -10,6 +10,8 @@ import java.util.List; * 字段: * field_value */ + +@Deprecated public class TaxDeclarationDetailEncrypt { public static List encryptTaxDeclarationDetailList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/encrypt/taxdeclaration/TaxDeclarationDetailPOEncrypt.java b/src/com/engine/salary/encrypt/taxdeclaration/TaxDeclarationDetailPOEncrypt.java index 8f0d57b3a..0cbc88a29 100644 --- a/src/com/engine/salary/encrypt/taxdeclaration/TaxDeclarationDetailPOEncrypt.java +++ b/src/com/engine/salary/encrypt/taxdeclaration/TaxDeclarationDetailPOEncrypt.java @@ -11,6 +11,7 @@ import java.util.List; * 字段: * field_value */ +@Deprecated public class TaxDeclarationDetailPOEncrypt { public static List encryptTaxDeclarationDetailPOList(List list) { if(list == null || list.size() == 0) { diff --git a/src/com/engine/salary/entity/datacollection/AddUpDeduction.java b/src/com/engine/salary/entity/datacollection/AddUpDeduction.java index 98bcea5f1..c462a4551 100644 --- a/src/com/engine/salary/entity/datacollection/AddUpDeduction.java +++ b/src/com/engine/salary/entity/datacollection/AddUpDeduction.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.datacollection; +import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.SalaryFormulaVar; import lombok.AllArgsConstructor; import lombok.Builder; @@ -42,42 +43,49 @@ public class AddUpDeduction { * 累计子女教育 */ @SalaryFormulaVar(defaultLabel = "累计子女教育", labelId = 86321, dataType = "number") + @Encrypt private String addUpChildEducation; /** * 累计继续教育 */ @SalaryFormulaVar(defaultLabel = "累计继续教育", labelId = 86323, dataType = "number") + @Encrypt private String addUpContinuingEducation; /** * 累计住房贷款利息 */ @SalaryFormulaVar(defaultLabel = "累计住房贷款利息", labelId = 86324, dataType = "number") + @Encrypt private String addUpHousingLoanInterest; /** * 累计住房租金 */ @SalaryFormulaVar(defaultLabel = "累计住房租金", labelId = 86325, dataType = "number") + @Encrypt private String addUpHousingRent; /** * 累计赡养老人 */ @SalaryFormulaVar(defaultLabel = "累计赡养老人", labelId = 86326, dataType = "number") + @Encrypt private String addUpSupportElderly; /** * 累计大病医疗 */ @SalaryFormulaVar(defaultLabel = "累计大病医疗", labelId = 105142, dataType = "number") + @Encrypt private String addUpIllnessMedical; /** * 累计婴幼儿照护 */ @SalaryFormulaVar(defaultLabel = "累计婴幼儿照护", labelId = 117732, dataType = "number") + @Encrypt private String addUpInfantCare; /** diff --git a/src/com/engine/salary/entity/datacollection/AddUpSituation.java b/src/com/engine/salary/entity/datacollection/AddUpSituation.java index ddecd5eee..6335aee90 100644 --- a/src/com/engine/salary/entity/datacollection/AddUpSituation.java +++ b/src/com/engine/salary/entity/datacollection/AddUpSituation.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.datacollection; +import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.SalaryFormulaVar; import com.engine.salary.annotation.SalaryTable; import com.engine.salary.annotation.SalaryTableOperate; @@ -52,102 +53,119 @@ public class AddUpSituation { * 累计收入额 */ @SalaryFormulaVar(defaultLabel = "累计收入额", labelId = 86712, dataType = "number") + @Encrypt private String addUpIncome; /** * 累计减除费用 */ @SalaryFormulaVar(defaultLabel = "累计减除费用", labelId = 86711, dataType = "number") + @Encrypt private String addUpSubtraction; /** * 累计社保个人合计 */ @SalaryFormulaVar(defaultLabel = "累计社保个人合计", labelId = 86710, dataType = "number") + @Encrypt private String addUpSocialSecurityTotal; /** * 累计公积金个人合计 */ @SalaryFormulaVar(defaultLabel = "累计公积金个人合计", labelId = 86709, dataType = "number") + @Encrypt private String addUpAccumulationFundTotal; /** * 累计子女教育 */ @SalaryFormulaVar(defaultLabel = "累计子女教育", labelId = 86321, dataType = "number") + @Encrypt private String addUpChildEducation; /** * 累计继续教育 */ @SalaryFormulaVar(defaultLabel = "累计继续教育", labelId = 86323, dataType = "number") + @Encrypt private String addUpContinuingEducation; /** * 累计住房贷款利息 */ @SalaryFormulaVar(defaultLabel = "累计住房贷款利息", labelId = 86324, dataType = "number") + @Encrypt private String addUpHousingLoanInterest; /** * 累计住房租金 */ @SalaryFormulaVar(defaultLabel = "累计住房租金", labelId = 86325, dataType = "number") + @Encrypt private String addUpHousingRent; /** * 累计赡养老人 */ @SalaryFormulaVar(defaultLabel = "累计赡养老人", labelId = 86326, dataType = "number") + @Encrypt private String addUpSupportElderly; /** * 累计大病医疗 */ @SalaryFormulaVar(defaultLabel = "累计大病医疗", labelId = 105142, dataType = "number") + @Encrypt private String addUpIllnessMedical; /** * 累计婴幼儿照护 */ @SalaryFormulaVar(defaultLabel = "累计婴幼儿照护", labelId = 117732, dataType = "number") + @Encrypt private String addUpInfantCare; /** * 累计企业(职业)年金及其他福利 */ @SalaryFormulaVar(defaultLabel = "累计企业(职业)年金及其他福利", labelId = 90567, dataType = "number") + @Encrypt private String addUpEnterpriseAndOther; /** * 累计其他免税扣除 */ @SalaryFormulaVar(defaultLabel = "累计其他免税扣除", labelId = 93902, dataType = "number") + @Encrypt private String addUpOtherDeduction; /** * 累计免税收入 */ @SalaryFormulaVar(defaultLabel = "累计免税收入", labelId = 86704, dataType = "number") + @Encrypt private String addUpTaxExemptIncome; /** * 累计准予扣除的捐赠额 */ @SalaryFormulaVar(defaultLabel = "累计准予扣除的捐赠额", labelId = 86703, dataType = "number") + @Encrypt private String addUpAllowedDonation; /** * 累计减免税额 */ @SalaryFormulaVar(defaultLabel = "累计减免税额", labelId = 105478, dataType = "number") + @Encrypt private String addUpTaxSavings; /** * 累计已预扣预缴税额 */ @SalaryFormulaVar(defaultLabel = "累计已预扣预缴税额", labelId = 86702, dataType = "number") + @Encrypt private String addUpAdvanceTax; /** diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java index f618c3f1c..c44181818 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionDTO.java @@ -1,10 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; -import com.engine.salary.annotation.SalaryTableOperate; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.annotation.*; import com.engine.salary.util.excel.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; @@ -108,6 +105,7 @@ public class AddUpDeductionDTO { @ExcelProperty(index = 7, msg = "第8列,累计子女教育解析错误,请输入数字") @SalaryTableColumn(text = "累计子女教育", width = "10%", column = "addUpChildEducation") @TableTitle(title = "累计子女教育", dataIndex = "addUpChildEducation", key = "addUpChildEducation") + @Encrypt private String addUpChildEducation; /** @@ -116,6 +114,7 @@ public class AddUpDeductionDTO { @ExcelProperty(index = 8, msg = "第9列,累计继续教育教育解析错误,请输入数字") @SalaryTableColumn(text = "累计继续教育", width = "10%", column = "addUpContinuingEducation") @TableTitle(title = "累计继续教育", dataIndex = "addUpContinuingEducation", key = "addUpContinuingEducation") + @Encrypt private String addUpContinuingEducation; /** @@ -124,6 +123,7 @@ public class AddUpDeductionDTO { @ExcelProperty(index = 9, msg = "第10列,累计住房贷款利息解析错误,请输入数字") @SalaryTableColumn(text = "累计住房贷款利息", width = "10%", column = "addUpHousingLoanInterest") @TableTitle(title = "累计住房贷款利息", dataIndex = "addUpHousingLoanInterest", key = "addUpHousingLoanInterest") + @Encrypt private String addUpHousingLoanInterest; /** @@ -132,6 +132,7 @@ public class AddUpDeductionDTO { @ExcelProperty(index = 10, msg = "第11列,累计住房租金解析错误,请输入数字") @SalaryTableColumn(text = "累计住房租金", width = "10%", column = "addUpHousingRent") @TableTitle(title = "累计住房租金", dataIndex = "addUpHousingRent", key = "addUpHousingRent") + @Encrypt private String addUpHousingRent; /** @@ -140,6 +141,7 @@ public class AddUpDeductionDTO { @ExcelProperty(index = 11, msg = "第12列,累计赡养老人解析错误,请输入数字") @SalaryTableColumn(text = "累计赡养老人", width = "10%", column = "addUpSupportElderly") @TableTitle(title = "累计赡养老人", dataIndex = "addUpSupportElderly", key = "addUpSupportElderly") + @Encrypt private String addUpSupportElderly; /** @@ -148,11 +150,13 @@ public class AddUpDeductionDTO { @ExcelProperty(index = 12, msg = "第13列,累计大病医疗解析错误,请输入数字") @SalaryTableColumn(text = "累计大病医疗", width = "10%", column = "addUpIllnessMedical") @TableTitle(title = "累计大病医疗", dataIndex = "addUpIllnessMedical", key = "addUpIllnessMedical") + @Encrypt private String addUpIllnessMedical; @ExcelProperty(index = 13, msg = "第14列,累计婴幼儿照护解析错误,请输入数字") @SalaryTableColumn(text = "累计婴幼儿照护", width = "10%", column = "addUpInfantCare") @TableTitle(title = "累计婴幼儿照护", dataIndex = "addUpInfantCare", key = "addUpInfantCare") + @Encrypt private String addUpInfantCare; @SalaryTableColumn(text = "操作", width = "20%", column = "operate") diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionRecordDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionRecordDTO.java index 4e30b12e2..b3cbbc0d7 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionRecordDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpDeductionRecordDTO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.SalaryTable; import com.engine.salary.annotation.SalaryTableColumn; import com.engine.salary.annotation.TableTitle; @@ -73,6 +74,7 @@ public class AddUpDeductionRecordDTO { @ExcelProperty(index = 5) @SalaryTableColumn(text = "累计子女教育", width = "10%", column = "addUpChildEducation") @TableTitle(title = "累计子女教育", dataIndex = "addUpChildEducation", key = "addUpChildEducation") + @Encrypt private String addUpChildEducation; /** @@ -81,6 +83,7 @@ public class AddUpDeductionRecordDTO { @ExcelProperty(index = 6) @SalaryTableColumn(text = "累计继续教育", width = "10%", column = "addUpContinuingEducation") @TableTitle(title = "累计继续教育", dataIndex = "addUpContinuingEducation", key = "addUpContinuingEducation") + @Encrypt private String addUpContinuingEducation; /** @@ -89,6 +92,7 @@ public class AddUpDeductionRecordDTO { @ExcelProperty(index = 7) @SalaryTableColumn(text = "累计住房贷款利息", width = "10%", column = "addUpHousingLoanInterest") @TableTitle(title = "累计住房贷款利息", dataIndex = "addUpHousingLoanInterest", key = "addUpHousingLoanInterest") + @Encrypt private String addUpHousingLoanInterest; /** @@ -97,6 +101,7 @@ public class AddUpDeductionRecordDTO { @ExcelProperty(index = 8) @SalaryTableColumn(text = "累计住房租金", width = "10%", column = "addUpHousingRent") @TableTitle(title = "累计住房租金", dataIndex = "addUpHousingRent", key = "addUpHousingRent") + @Encrypt private String addUpHousingRent; /** @@ -105,16 +110,19 @@ public class AddUpDeductionRecordDTO { @ExcelProperty(index = 9) @SalaryTableColumn(text = "累计赡养老人", width = "10%", column = "addUpSupportElderly") @TableTitle(title = "累计赡养老人", dataIndex = "addUpSupportElderly", key = "addUpSupportElderly") + @Encrypt private String addUpSupportElderly; @ExcelProperty(index = 10) @SalaryTableColumn(text = "累计大病医疗", width = "10%", column = "addUpIllnessMedical") @TableTitle(title = "累计大病医疗", dataIndex = "addUpIllnessMedical", key = "addUpIllnessMedical") + @Encrypt private String addUpIllnessMedical; @ExcelProperty(index = 11) @SalaryTableColumn(text = "累计婴幼儿照护", width = "10%", column = "addUpInfantCare") @TableTitle(title = "累计婴幼儿照护", dataIndex = "addUpInfantCare", key = "addUpInfantCare") + @Encrypt private String addUpInfantCare; } diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java index d761114cd..342d81f53 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationDTO.java @@ -1,10 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; -import com.engine.salary.annotation.SalaryTableOperate; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.annotation.*; import com.engine.salary.util.excel.ExcelProperty; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -92,102 +89,119 @@ public class AddUpSituationDTO { @SalaryTableColumn(text = "累计收入额", width = "10%", column = "addUpIncome") @TableTitle(title = "累计收入额", dataIndex = "addUpIncome", key = "addUpIncome") @ExcelProperty(index = 7) + @Encrypt private String addUpIncome; //累计减除费用 @SalaryTableColumn(text = "累计减除费用", width = "10%", column = "addUpSubtraction") @TableTitle(title = "累计减除费用", dataIndex = "addUpSubtraction", key = "addUpSubtraction") @ExcelProperty(index = 8) + @Encrypt private String addUpSubtraction; //累计社保个人合计 @SalaryTableColumn(text = "累计社保个人合计", width = "10%", column = "addUpSocialSecurityTotal") @TableTitle(title = "累计社保个人合计", dataIndex = "addUpSocialSecurityTotal", key = "addUpSocialSecurityTotal") @ExcelProperty(index = 9) + @Encrypt private String addUpSocialSecurityTotal; //累计公积金个人合计 @SalaryTableColumn(text = "累计公积金个人合计", width = "10%", column = "addUpAccumulationFundTotal") @TableTitle(title = "累计公积金个人合计", dataIndex = "addUpAccumulationFundTotal", key = "addUpAccumulationFundTotal") @ExcelProperty(index = 10) + @Encrypt private String addUpAccumulationFundTotal; //累计子女教育 @SalaryTableColumn(text = "累计子女教育", width = "10%", column = "addUpChildEducation") @TableTitle(title = "累计子女教育", dataIndex = "addUpChildEducation", key = "addUpChildEducation") @ExcelProperty(index = 11) + @Encrypt private String addUpChildEducation; //累计继续教育 @SalaryTableColumn(text = "累计继续教育", width = "10%", column = "addUpContinuingEducation") @TableTitle(title = "累计继续教育", dataIndex = "addUpContinuingEducation", key = "addUpContinuingEducation") @ExcelProperty(index = 12) + @Encrypt private String addUpContinuingEducation; //累计住房贷款利息 @SalaryTableColumn(text = "累计住房贷款利息", width = "10%", column = "addUpHousingLoanInterest") @TableTitle(title = "累计住房贷款利息", dataIndex = "addUpHousingLoanInterest", key = "addUpHousingLoanInterest") @ExcelProperty(index = 13) + @Encrypt private String addUpHousingLoanInterest; //累计住房租金 @SalaryTableColumn(text = "累计住房租金", width = "10%", column = "addUpHousingRent") @TableTitle(title = "累计住房租金", dataIndex = "addUpHousingRent", key = "addUpHousingRent") @ExcelProperty(index = 14) + @Encrypt private String addUpHousingRent; //累计赡养老人 @SalaryTableColumn(text = "累计赡养老人", width = "10%", column = "addUpSupportElderly") @TableTitle(title = "累计赡养老人", dataIndex = "addUpSupportElderly", key = "addUpSupportElderly") @ExcelProperty(index = 15) + @Encrypt private String addUpSupportElderly; //累计大病医疗 @SalaryTableColumn(text = "累计大病医疗", width = "10%", column = "addUpIllnessMedical") @TableTitle(title = "累计大病医疗", dataIndex = "addUpIllnessMedical", key = "addUpIllnessMedical") @ExcelProperty(index = 16) + @Encrypt private String addUpIllnessMedical; //累计企业(职业)年金及其他福利 @SalaryTableColumn(text = "累计企业(职业)年金及其他福利", width = "10%", column = "addUpEnterpriseAndOther") @TableTitle(title = "累计企业(职业)年金及其他福利", dataIndex = "addUpEnterpriseAndOther", key = "addUpEnterpriseAndOther") @ExcelProperty(index = 17) + @Encrypt private String addUpEnterpriseAndOther; //累计其他扣除 @SalaryTableColumn(text = "累计其他扣除", width = "10%", column = "addUpOtherDeduction") @TableTitle(title = "累计其他扣除", dataIndex = "addUpOtherDeduction", key = "addUpOtherDeduction") @ExcelProperty(index = 18) + @Encrypt private String addUpOtherDeduction; //累计免税收入 @SalaryTableColumn(text = "累计免税收入", width = "10%", column = "addUpTaxExemptIncome") @TableTitle(title = "累计免税收入", dataIndex = "addUpTaxExemptIncome", key = "addUpTaxExemptIncome") @ExcelProperty(index = 19) + @Encrypt private String addUpTaxExemptIncome; //累计准予扣除的捐赠额 @SalaryTableColumn(text = "累计准予扣除的捐赠额", width = "10%", column = "addUpAllowedDonation") @TableTitle(title = "累计准予扣除的捐赠额", dataIndex = "addUpAllowedDonation", key = "addUpAllowedDonation") @ExcelProperty(index = 20) + @Encrypt private String addUpAllowedDonation; //累计减免税额 @SalaryTableColumn(text = "累计减免税额", width = "10%", column = "addUpTaxSavings") @TableTitle(title = "累计减免税额", dataIndex = "addUpTaxSavings", key = "addUpTaxSavings") @ExcelProperty(index = 21) + @Encrypt private String addUpTaxSavings; //累计已预扣预缴税额 @SalaryTableColumn(text = "累计已预扣预缴税额", width = "10%", column = "addUpAdvanceTax") @TableTitle(title = "累计已预扣预缴税额", dataIndex = "addUpAdvanceTax", key = "addUpAdvanceTax") @ExcelProperty(index = 22) + @Encrypt private String addUpAdvanceTax; //累计婴幼儿照护 @ExcelProperty(index = 23) @SalaryTableColumn(text = "累计婴幼儿照护", width = "10%", column = "addUpInfantCare") @TableTitle(title = "累计婴幼儿照护", dataIndex = "addUpInfantCare", key = "addUpInfantCare") + @Encrypt private String addUpInfantCare; @SalaryTableColumn(text = "操作", width = "20%", column = "operate") diff --git a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationRecordDTO.java b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationRecordDTO.java index 50a79012b..b32b60cae 100644 --- a/src/com/engine/salary/entity/datacollection/dto/AddUpSituationRecordDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/AddUpSituationRecordDTO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.SalaryTable; import com.engine.salary.annotation.SalaryTableColumn; import com.engine.salary.annotation.TableTitle; @@ -71,85 +72,102 @@ public class AddUpSituationRecordDTO { @SalaryTableColumn(text = "累计收入额", width = "10%", column = "addUpIncome") @TableTitle(title = "累计收入额", dataIndex = "addUpIncome", key = "addUpIncome") @ExcelProperty(index = 6) + @Encrypt private String addUpIncome; @SalaryTableColumn(text = "累计减除费用", width = "10%", column = "addUpSubtraction") @TableTitle(title = "累计减除费用", dataIndex = "addUpSubtraction", key = "addUpSubtraction") @ExcelProperty(index = 7) + @Encrypt private String addUpSubtraction; @SalaryTableColumn(text = "累计社保个人合计", width = "10%", column = "addUpSocialSecurityTotal") @TableTitle(title = "累计社保个人合计", dataIndex = "addUpSocialSecurityTotal", key = "addUpSocialSecurityTotal") @ExcelProperty(index = 8) + @Encrypt private String addUpSocialSecurityTotal; @SalaryTableColumn(text = "累计公积金个人合计", width = "10%", column = "addUpAccumulationFundTotal") @TableTitle(title = "累计公积金个人合计", dataIndex = "addUpAccumulationFundTotal", key = "addUpAccumulationFundTotal") @ExcelProperty(index = 9) + @Encrypt private String addUpAccumulationFundTotal; @ExcelProperty(index = 10) @SalaryTableColumn(text = "累计子女教育", width = "10%", column = "addUpChildEducation") @TableTitle(title = "累计子女教育", dataIndex = "addUpChildEducation", key = "addUpChildEducation") + @Encrypt private String addUpChildEducation; @ExcelProperty(index = 11) @SalaryTableColumn(text = "累计继续教育", width = "10%", column = "addUpContinuingEducation") @TableTitle(title = "累计继续教育", dataIndex = "addUpContinuingEducation", key = "addUpContinuingEducation") + @Encrypt private String addUpContinuingEducation; @ExcelProperty(index = 12) @SalaryTableColumn(text = "累计住房贷款利息", width = "10%", column = "addUpHousingLoanInterest") @TableTitle(title = "累计住房贷款利息", dataIndex = "addUpHousingLoanInterest", key = "addUpHousingLoanInterest") + @Encrypt private String addUpHousingLoanInterest; @ExcelProperty(index = 13) @SalaryTableColumn(text = "累计住房租金", width = "10%", column = "addUpHousingRent") @TableTitle(title = "累计住房租金", dataIndex = "addUpHousingRent", key = "addUpHousingRent") + @Encrypt private String addUpHousingRent; @ExcelProperty(index = 14) @SalaryTableColumn(text = "累计赡养老人", width = "10%", column = "addUpSupportElderly") @TableTitle(title = "累计赡养老人", dataIndex = "addUpSupportElderly", key = "addUpSupportElderly") + @Encrypt private String addUpSupportElderly; @ExcelProperty(index = 15) @SalaryTableColumn(text = "累计大病医疗", width = "10%", column = "addUpIllnessMedical") @TableTitle(title = "累计大病医疗", dataIndex = "addUpIllnessMedical", key = "addUpIllnessMedical") + @Encrypt private String addUpIllnessMedical; @ExcelProperty(index = 16) @SalaryTableColumn(text = "累计企业(职业)年金及其他福利", width = "10%", column = "addUpEnterpriseAndOther") @TableTitle(title = "累计企业(职业)年金及其他福利", dataIndex = "addUpEnterpriseAndOther", key = "addUpEnterpriseAndOther") + @Encrypt private String addUpEnterpriseAndOther; @ExcelProperty(index = 17) @SalaryTableColumn(text = "累计其他扣除", width = "10%", column = "addUpOtherDeduction") @TableTitle(title = "累计其他扣除", dataIndex = "addUpOtherDeduction", key = "addUpOtherDeduction") + @Encrypt private String addUpOtherDeduction; @ExcelProperty(index = 18) @SalaryTableColumn(text = "累计免税收入", width = "10%", column = "addUpTaxExemptIncome") @TableTitle(title = "累计免税收入", dataIndex = "addUpTaxExemptIncome", key = "addUpTaxExemptIncome") + @Encrypt private String addUpTaxExemptIncome; @ExcelProperty(index = 19) @SalaryTableColumn(text = "累计准予扣除的捐赠额", width = "10%", column = "addUpAllowedDonation") @TableTitle(title = "累计准予扣除的捐赠额", dataIndex = "addUpAllowedDonation", key = "addUpAllowedDonation") + @Encrypt private String addUpAllowedDonation; @ExcelProperty(index = 20) @SalaryTableColumn(text = "累计减免税额", width = "10%", column = "addUpTaxSavings") @TableTitle(title = "累计减免税额", dataIndex = "addUpTaxSavings", key = "addUpTaxSavings") + @Encrypt private String addUpTaxSavings; @ExcelProperty(index = 21) @SalaryTableColumn(text = "累计已预扣预缴税额", width = "10%", column = "addUpAdvanceTax") @TableTitle(title = "累计已预扣预缴税额", dataIndex = "addUpAdvanceTax", key = "addUpAdvanceTax") + @Encrypt private String addUpAdvanceTax; @ExcelProperty(index = 22) @SalaryTableColumn(text = "累计婴幼儿照护", width = "10%", column = "addUpInfantCare") @TableTitle(title = "累计婴幼儿照护", dataIndex = "addUpInfantCare", key = "addUpInfantCare") + @Encrypt private String addUpInfantCare; } diff --git a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java index c5702b9c9..fef35da8e 100644 --- a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionListDTO.java @@ -1,10 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; -import com.engine.salary.annotation.SalaryTableOperate; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.annotation.*; import com.engine.salary.util.excel.ExcelProperty; import lombok.AllArgsConstructor; import lombok.Builder; @@ -87,24 +84,28 @@ public class OtherDeductionListDTO { @ExcelProperty(index = 7) @SalaryTableColumn(text = "商业健康保险", width = "10%", column = "businessHealthyInsurance") @TableTitle(title = "商业健康保险", dataIndex = "businessHealthyInsurance", key = "businessHealthyInsurance") + @Encrypt private String businessHealthyInsurance; //税延养老保险 @ExcelProperty(index = 8) @SalaryTableColumn(text = "税延养老保险", width = "10%", column = "taxDelayEndowmentInsurance") @TableTitle(title = "税延养老保险", dataIndex = "taxDelayEndowmentInsurance", key = "taxDelayEndowmentInsurance") + @Encrypt private String taxDelayEndowmentInsurance; //其他 @ExcelProperty(index = 9) @SalaryTableColumn(text = "其他", width = "10%", column = "otherDeduction") @TableTitle(title = "其他", dataIndex = "otherDeduction", key = "otherDeduction") + @Encrypt private String otherDeduction; //准予扣除的捐赠额 @ExcelProperty(index = 10) @SalaryTableColumn(text = "准予扣除的捐赠额", width = "10%", column = "deductionAllowedDonation") @TableTitle(title = "准予扣除的捐赠额", dataIndex = "deductionAllowedDonation", key = "deductionAllowedDonation") + @Encrypt private String deductionAllowedDonation; @SalaryTableColumn(text = "操作", width = "20%", column = "operate") diff --git a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionRecordDTO.java b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionRecordDTO.java index ef1c09271..caafb0010 100644 --- a/src/com/engine/salary/entity/datacollection/dto/OtherDeductionRecordDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/OtherDeductionRecordDTO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.SalaryTable; import com.engine.salary.annotation.SalaryTableColumn; import com.engine.salary.annotation.TableTitle; @@ -72,20 +73,24 @@ public class OtherDeductionRecordDTO { //商业健康保险 @SalaryTableColumn(text = "商业健康保险", width = "10%", column = "businessHealthyInsurance") @TableTitle(title = "商业健康保险", dataIndex = "businessHealthyInsurance", key = "businessHealthyInsurance") + @Encrypt private String businessHealthyInsurance; //税延养老保险 @SalaryTableColumn(text = "税延养老保险", width = "10%", column = "taxDelayEndowmentInsurance") @TableTitle(title = "税延养老保险", dataIndex = "taxDelayEndowmentInsurance", key = "taxDelayEndowmentInsurance") + @Encrypt private String taxDelayEndowmentInsurance; //其他 @SalaryTableColumn(text = "其他", width = "10%", column = "otherDeduction") @TableTitle(title = "其他", dataIndex = "otherDeduction", key = "otherDeduction") + @Encrypt private String otherDeduction; //准予扣除的捐赠额 @SalaryTableColumn(text = "准予扣除的捐赠额", width = "10%", column = "deductionAllowedDonation") @TableTitle(title = "准予扣除的捐赠额", dataIndex = "deductionAllowedDonation", key = "deductionAllowedDonation") + @Encrypt private String deductionAllowedDonation; } diff --git a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java index 8b86b6281..8597f505b 100644 --- a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionListDTO.java @@ -1,10 +1,7 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; -import com.engine.salary.annotation.SalaryTable; -import com.engine.salary.annotation.SalaryTableColumn; -import com.engine.salary.annotation.SalaryTableOperate; -import com.engine.salary.annotation.TableTitle; +import com.engine.salary.annotation.*; import com.engine.salary.util.excel.ExcelProperty; import lombok.AllArgsConstructor; import lombok.Builder; @@ -87,42 +84,49 @@ public class SpecialAddDeductionListDTO { @ExcelProperty(index = 7) @SalaryTableColumn(text = "子女教育", width = "10%", column = "childrenEducation") @TableTitle(title = "子女教育", dataIndex = "childrenEducation", key = "childrenEducation") + @Encrypt private String childrenEducation; //继续教育 @ExcelProperty(index = 8) @SalaryTableColumn(text = "继续教育", width = "10%", column = "continuingEducation") @TableTitle(title = "继续教育", dataIndex = "continuingEducation", key = "continuingEducation") + @Encrypt private String continuingEducation; //住房贷款利息 @ExcelProperty(index = 9) @SalaryTableColumn(text = "住房贷款利息", width = "10%", column = "housingLoanInterest") @TableTitle(title = "住房贷款利息", dataIndex = "housingLoanInterest", key = "housingLoanInterest") + @Encrypt private String housingLoanInterest; //住房租金 @ExcelProperty(index = 10) @SalaryTableColumn(text = "住房租金", width = "10%", column = "housingRent") @TableTitle(title = "住房租金", dataIndex = "housingRent", key = "housingRent") + @Encrypt private String housingRent; //赡养老人 @ExcelProperty(index = 11) @SalaryTableColumn(text = "赡养老人", width = "10%", column = "supportingElder") @TableTitle(title = "赡养老人", dataIndex = "supportingElder", key = "supportingElder") + @Encrypt private String supportingElder; //大病医疗 @ExcelProperty(index = 12) @SalaryTableColumn(text = "大病医疗", width = "10%", column = "seriousIllnessTreatment") @TableTitle(title = "大病医疗", dataIndex = "seriousIllnessTreatment", key = "seriousIllnessTreatment") + @Encrypt private String seriousIllnessTreatment; //婴幼儿照护 @ExcelProperty(index = 13) @SalaryTableColumn(text = "婴幼儿照护", width = "10%", column = "infantCare") @TableTitle(title = "婴幼儿照护", dataIndex = "infantCare", key = "infantCare") + @Encrypt private String infantCare; @SalaryTableColumn(text = "操作", width = "20%", column = "operate") diff --git a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java index a7cb63bac..f872279e1 100644 --- a/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java +++ b/src/com/engine/salary/entity/datacollection/dto/SpecialAddDeductionRecordDTO.java @@ -1,17 +1,15 @@ package com.engine.salary.entity.datacollection.dto; import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.SalaryTable; import com.engine.salary.annotation.SalaryTableColumn; import com.engine.salary.annotation.TableTitle; -import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Date; - /** * 其他免税扣除记录列表 *

Copyright: Copyright (c) 2022

@@ -66,35 +64,42 @@ public class SpecialAddDeductionRecordDTO { //子女教育 @SalaryTableColumn(text = "子女教育", width = "10%", column = "childrenEducation") @TableTitle(title = "子女教育", dataIndex = "childrenEducation", key = "childrenEducation") + @Encrypt private String childrenEducation; //继续教育 @SalaryTableColumn(text = "继续教育", width = "10%", column = "continuingEducation") @TableTitle(title = "继续教育", dataIndex = "continuingEducation", key = "continuingEducation") + @Encrypt private String continuingEducation; //住房贷款利息 @SalaryTableColumn(text = "住房贷款利息", width = "10%", column = "housingLoanInterest") @TableTitle(title = "住房贷款利息", dataIndex = "housingLoanInterest", key = "housingLoanInterest") + @Encrypt private String housingLoanInterest; //住房租金 @SalaryTableColumn(text = "住房租金", width = "10%", column = "housingRent") @TableTitle(title = "住房租金", dataIndex = "housingRent", key = "housingRent") + @Encrypt private String housingRent; //赡养老人 @SalaryTableColumn(text = "赡养老人", width = "10%", column = "supportingElder") @TableTitle(title = "赡养老人", dataIndex = "supportingElder", key = "supportingElder") + @Encrypt private String supportingElder; //大病医疗 @SalaryTableColumn(text = "大病医疗", width = "10%", column = "seriousIllnessTreatment") @TableTitle(title = "大病医疗", dataIndex = "seriousIllnessTreatment", key = "seriousIllnessTreatment") + @Encrypt private String seriousIllnessTreatment; //大病医疗 @SalaryTableColumn(text = "婴幼儿照护", width = "10%", column = "infantCare") @TableTitle(title = "婴幼儿照护", dataIndex = "infantCare", key = "infantCare") + @Encrypt private String infantCare; } diff --git a/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java b/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java index 7b0ca4113..addccafa3 100644 --- a/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java +++ b/src/com/engine/salary/entity/datacollection/po/OtherDeductionPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.datacollection.po; +import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.SalaryFormulaVar; import lombok.AllArgsConstructor; import lombok.Builder; @@ -43,24 +44,28 @@ public class OtherDeductionPO { * 商业健康保险 */ @SalaryFormulaVar(defaultLabel = "商业健康保险", labelId = 91238, dataType = "number") + @Encrypt private String businessHealthyInsurance; /** * 税延养老保险 */ @SalaryFormulaVar(defaultLabel = "税延养老保险", labelId = 91239, dataType = "number") + @Encrypt private String taxDelayEndowmentInsurance; /** * 其他 */ @SalaryFormulaVar(defaultLabel = "其他", labelId = 84500, dataType = "number") + @Encrypt private String otherDeduction; /** * 准予扣除的捐赠额 */ @SalaryFormulaVar(defaultLabel = "准予扣除的捐赠额", labelId = 91240, dataType = "number") + @Encrypt private String deductionAllowedDonation; /** diff --git a/src/com/engine/salary/entity/datacollection/po/SpecialAddDeductionPO.java b/src/com/engine/salary/entity/datacollection/po/SpecialAddDeductionPO.java index 32cfe786b..9aaaa7363 100644 --- a/src/com/engine/salary/entity/datacollection/po/SpecialAddDeductionPO.java +++ b/src/com/engine/salary/entity/datacollection/po/SpecialAddDeductionPO.java @@ -1,12 +1,14 @@ package com.engine.salary.entity.datacollection.po; -import java.util.Date; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import java.util.Date; + /** * 数据采集-专项附加扣除表 */ @@ -31,36 +33,43 @@ public class SpecialAddDeductionPO { /** * 子女教育 */ + @Encrypt private String childrenEducation; /** * 继续教育 */ + @Encrypt private String continuingEducation; /** * 住房贷款利息 */ + @Encrypt private String housingLoanInterest; /** * 住房租金 */ + @Encrypt private String housingRent; /** * 赡养老人 */ + @Encrypt private String supportingElder; /** * 大病医疗 */ + @Encrypt private String seriousIllnessTreatment; /** * 婴幼儿照护 */ + @Encrypt private String infantCare; /** diff --git a/src/com/engine/salary/entity/hrm/dto/HrmInfoDTO.java b/src/com/engine/salary/entity/hrm/dto/HrmInfoDTO.java index 21ec12013..f378fe85b 100644 --- a/src/com/engine/salary/entity/hrm/dto/HrmInfoDTO.java +++ b/src/com/engine/salary/entity/hrm/dto/HrmInfoDTO.java @@ -20,4 +20,7 @@ public class HrmInfoDTO { //姓名 private String username; + + + private Long target; } diff --git a/src/com/engine/salary/entity/hrm/param/HrmQueryParam.java b/src/com/engine/salary/entity/hrm/param/HrmQueryParam.java index 03787f33e..0e6da1aa6 100644 --- a/src/com/engine/salary/entity/hrm/param/HrmQueryParam.java +++ b/src/com/engine/salary/entity/hrm/param/HrmQueryParam.java @@ -18,10 +18,13 @@ import java.util.Collection; @AllArgsConstructor public class HrmQueryParam { - String userName; + private String userName; private int pageNum; private int pageSize; private Collection ids; + + private String billMonth; + private Long paymentOrganization; } diff --git a/src/com/engine/salary/entity/report/po/SalaryAcctResultReportPO.java b/src/com/engine/salary/entity/report/po/SalaryAcctResultReportPO.java index 61f85af7d..67a2d7758 100644 --- a/src/com/engine/salary/entity/report/po/SalaryAcctResultReportPO.java +++ b/src/com/engine/salary/entity/report/po/SalaryAcctResultReportPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.report.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -24,6 +25,7 @@ public class SalaryAcctResultReportPO { /** * 薪资核算人员id */ + @Encrypt private String salaryAcctEmpId; /** * 薪资核算的id @@ -32,6 +34,7 @@ public class SalaryAcctResultReportPO { /** * 人员id */ + @Encrypt private String employeeId; /** * 个税扣缴义务人id diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalarySendRangeBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalarySendRangeBO.java new file mode 100644 index 000000000..74fb8ef3e --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/bo/SalarySendRangeBO.java @@ -0,0 +1,186 @@ +package com.engine.salary.entity.salaryBill.bo; + +import com.engine.salary.entity.salaryBill.dto.SalarySendUserInfoDTO; +import com.engine.salary.entity.salaryBill.po.SalarySendRangeObj; +import com.engine.salary.enums.salarysend.SalarySendRangeTargetTypeEnum; +import com.engine.salary.enums.salarysend.SalarySendRangeTypeEnum; +import com.google.common.collect.Sets; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.*; + +/** + * @Description: 工资单发放范围 + */ +@NoArgsConstructor +public class SalarySendRangeBO { + private static final SalarySendRangeItem EMPTY_ITEM = new SalarySendRangeItem(null, null, Collections.emptySet()); + + private static final Integer INCLUDED = 1; + private static final Integer EXCLUDED = -1; + private static final Integer NOT_IN = 0; + + /** + * 索引map + */ + private final Map> indexMap + = new HashMap<>(6); + + /** + * 排除所有人 + */ + private boolean isExcludeAll = false; + + /** + * 增加所有人 + */ + private boolean isIncludeAll = false; + + public boolean putNew(SalarySendRangeObj salarySendRangeObj) { + //如果已经设置了排除所有人 或者 添加所有人, 直接跳过处理 + if (isExcludeAll) { + return true; + } + Integer rangeType = salarySendRangeObj.getRangeType(); + SalarySendRangeTypeEnum rangeTypeE = SalarySendRangeTypeEnum.fromValue(rangeType); + + Integer targetType = salarySendRangeObj.getTargetType(); + SalarySendRangeTargetTypeEnum targetTypeE = SalarySendRangeTargetTypeEnum.fromValue(targetType); + + if (rangeTypeE == null || targetTypeE == null) { + return false; + } + //所有人 筛选 + if (targetTypeE == SalarySendRangeTargetTypeEnum.ALL) { + isIncludeAll = rangeTypeE == SalarySendRangeTypeEnum.INCLUDE_OBJ; + isExcludeAll = rangeTypeE == SalarySendRangeTypeEnum.EXCLUDE_OBJ; + } + //未存入时插入 + indexMap.computeIfAbsent(targetTypeE, k -> { + Map value = new HashMap<>(); + SalarySendRangeItem rangeItem = + new SalarySendRangeItem(rangeTypeE, targetTypeE, Sets.newHashSet(salarySendRangeObj.getTargetId())); + value.put(rangeTypeE, rangeItem); + return value; + }); + //已存在时更新 + indexMap.computeIfPresent(targetTypeE, (k, v) -> { + SalarySendRangeItem item = v.get(rangeTypeE); + if (null == item) { + item = new SalarySendRangeItem(rangeTypeE, targetTypeE, Sets.newHashSet(salarySendRangeObj.getTargetId())); + } else { + item.getTargetIds().add(salarySendRangeObj.getTargetId()); + } + v.put(rangeTypeE, item); + return v; + }); + return true; + } + + private Set getTargetIds(SalarySendRangeTargetTypeEnum targetType, SalarySendRangeTypeEnum rangeType) { + Map itemMap = indexMap.get(targetType); + if (itemMap != null) { + SalarySendRangeItem item = itemMap.getOrDefault(rangeType, EMPTY_ITEM); + return item.getTargetIds(); + } + return Collections.emptySet(); + } + + /** + * 判断是否在人员范围内 + * 如果已经有 所有人 的范围设置,不判断是否有其他范围直接返回 + * + * @param targetType 目标类型 + * @param targetId 目标id + * @return 是否在范围内 + */ + private int doJudgeInRange(SalarySendRangeTargetTypeEnum targetType, Long targetId) { + //如果所有人范围已经设置 + if (isExcludeAll) { + return EXCLUDED; + } + Set includeTargetIds = getTargetIds(targetType, SalarySendRangeTypeEnum.INCLUDE_OBJ); + Set excludeTargetIds = getTargetIds(targetType, SalarySendRangeTypeEnum.EXCLUDE_OBJ); + if (excludeTargetIds.contains(targetId)) { + return EXCLUDED; + } else if (includeTargetIds.contains(targetId)) { + return INCLUDED; + } else { + //默认值是是否选择所有人 + return isIncludeAll ? INCLUDED : NOT_IN; + } + } + + private int doJudgeInRange(SalarySendRangeTargetTypeEnum targetType, Collection targetIds) { + if (CollectionUtils.isEmpty(targetIds)) { + return NOT_IN; + } + //如果所有人范围已经设置 + if (isExcludeAll) { + return EXCLUDED; + } + if (isIncludeAll) { + return INCLUDED; + } + Set includeTargetIds = getTargetIds(targetType, SalarySendRangeTypeEnum.INCLUDE_OBJ); + Set excludeTargetIds = getTargetIds(targetType, SalarySendRangeTypeEnum.EXCLUDE_OBJ); + if (targetIds.stream().anyMatch(excludeTargetIds::contains)) { + return EXCLUDED; + } else if (targetIds.stream().anyMatch(includeTargetIds::contains)) { + return INCLUDED; + } else { + return NOT_IN; + } + } + + public boolean judgeInRange(SalarySendUserInfoDTO dto) { + //如果所有人范围已经设置 + if (isExcludeAll) { + return false; + } + Integer isInRange = NOT_IN; + // 默认值为是否选择所有人 + boolean result = isIncludeAll; + for (SalarySendRangeTargetTypeEnum targetType : SalarySendRangeTargetTypeEnum.values()) { + switch (targetType) { + case DEPT: + isInRange = doJudgeInRange(targetType, dto.getDepartmentId()); + break; + case USER: + isInRange = doJudgeInRange(targetType, dto.getResourceId()); + break; + case POSITION: + isInRange = doJudgeInRange(targetType, dto.getJobTitle()); + break; +// case TAX_AGENT: +// isInRange = doJudgeInRange(targetType, dto.getTaxAgentIds()); +// break; + case SUB_COMPANY: + isInRange = doJudgeInRange(targetType, dto.getSubCompanyId()); + break; + } + if (isInRange.equals(EXCLUDED)) { + //如果被排除,返回false + return false; + } else { + // 只要没有被排除,在范围内即为true + result |= isInRange.equals(INCLUDED); + } + } + return result; + } + + @AllArgsConstructor + @NoArgsConstructor + @Data + private static class SalarySendRangeItem { + private SalarySendRangeTypeEnum rangeType; + + private SalarySendRangeTargetTypeEnum targetType; + + private Set targetIds; + } +} diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalarySendRangeListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalarySendRangeListDTO.java new file mode 100644 index 000000000..4a407645b --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/dto/SalarySendRangeListDTO.java @@ -0,0 +1,36 @@ +package com.engine.salary.entity.salaryBill.dto; + +import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.salary.annotation.SalaryTable; +import com.engine.salary.annotation.SalaryTableColumn; +import com.engine.salary.annotation.TableTitle; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@SalaryTable(pageId = "a4fa2487-d36a82d0dc050a5465f1252f9ecaa107", + tableType = WeaTableType.CHECKBOX) +public class SalarySendRangeListDTO { + @JsonSerialize(using = ToStringSerializer.class) + @SalaryTableColumn(column = "id", display = false) + private Long id; + + private String grantType; + + @SalaryTableColumn(text = "对象", width = "50%", column = "includeObj") + @TableTitle(title = "对象", key = "includeObj", dataIndex = "includeObj") + private List includeObj; + + @SalaryTableColumn(text = "对象中排除", width = "50%", column = "excludeObj") + @TableTitle(title = "对象中排除", key = "excludeObj", dataIndex = "excludeObj") + private List excludeObj; +} diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalarySendRangeObjDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalarySendRangeObjDTO.java new file mode 100644 index 000000000..e6a85c9ed --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/dto/SalarySendRangeObjDTO.java @@ -0,0 +1,44 @@ +package com.engine.salary.entity.salaryBill.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 工资单发放撤回筛选范围对象 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class SalarySendRangeObjDTO { + + /** + * id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long targetId; + + /** + * 名称 + */ + private String targetName; + + /** + * 类型 + */ + private Integer targetType; + + /** + * 类型名称 + */ + private String targetTypeName; + + /** + * @see com.engine.salary.enums.salarysend.SalarySendRangeTypeEnum + */ + private Integer rangeType; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalarySendUserInfoDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalarySendUserInfoDTO.java new file mode 100644 index 000000000..0b2648af0 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/dto/SalarySendUserInfoDTO.java @@ -0,0 +1,38 @@ +package com.engine.salary.entity.salaryBill.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class SalarySendUserInfoDTO { + /** + * 岗位 + */ + private Long jobTitle; + + /** + * 部门 + */ + private Long departmentId; + + /** + * 分部 + */ + private Long subCompanyId; + + + /** + * 人员id + */ + private Long resourceId; + + /** + * 个税扣缴义务人id + */ + private List taxAgentIds; +} diff --git a/src/com/engine/salary/entity/salaryBill/param/SalarySendGrantParam.java b/src/com/engine/salary/entity/salaryBill/param/SalarySendGrantParam.java index a61f1eef4..12268806f 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalarySendGrantParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalarySendGrantParam.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Collection; +import java.util.List; /** * @Description: 工资单发放参数 @@ -26,6 +27,11 @@ public class SalarySendGrantParam { // @ApiModelProperty("工资单发放Id") private Long salarySendId; + /** + * 工资单发放范围id + */ + private List salarySendRangeIds; + public static String checkParam(SalarySendGrantParam param, Long employeeId, String tenantKey) { if (param.getSalarySendId() == null) { throw new SalaryRunTimeException("工资单发放Id必传"); diff --git a/src/com/engine/salary/entity/salaryBill/param/SalarySendInfoQueryParam.java b/src/com/engine/salary/entity/salaryBill/param/SalarySendInfoQueryParam.java index 3153759e3..2bac2f3c5 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalarySendInfoQueryParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalarySendInfoQueryParam.java @@ -58,6 +58,12 @@ public class SalarySendInfoQueryParam extends BaseQueryParam { // @ApiModelProperty("发送状态") private SalarySendStatusEnum sendStatus; + /** + * true= [已发送] + * false= [未发送,已撤回] + */ + private Boolean isGranted; + /** * 发送状态 */ diff --git a/src/com/engine/salary/entity/salaryBill/param/SalarySendRangeQueryParam.java b/src/com/engine/salary/entity/salaryBill/param/SalarySendRangeQueryParam.java new file mode 100644 index 000000000..65a4bb257 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalarySendRangeQueryParam.java @@ -0,0 +1,30 @@ +package com.engine.salary.entity.salaryBill.param; + +import com.engine.salary.common.BaseQueryParam; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//@ApiModel("工资单发放范围查询参数") +public class SalarySendRangeQueryParam extends BaseQueryParam { + /** + * 发放类型 + * @see com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum + */ + private String grantType; + + /** + * 发放单id + */ + private Long salarySendId; + + /** + * 对象名称关键字 + */ + private String targetName; +} diff --git a/src/com/engine/salary/entity/salaryBill/param/SalarySendRangeSaveParam.java b/src/com/engine/salary/entity/salaryBill/param/SalarySendRangeSaveParam.java new file mode 100644 index 000000000..7b4edd800 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalarySendRangeSaveParam.java @@ -0,0 +1,122 @@ +package com.engine.salary.entity.salaryBill.param; + +import com.alibaba.nacos.client.naming.utils.CollectionUtils; +import com.engine.salary.entity.salaryBill.po.SalarySendRangeObj; +import com.engine.salary.entity.salaryBill.po.SalarySendRangePO; +import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum; +import com.engine.salary.enums.salarysend.SalarySendRangeTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SalarySendRangeSaveParam { + /** + * 发放id + */ + private Long salarySendId; + + + /** + * 发放范围id + */ + private Long salarySendRangeId; + + + /** + * 发放/撤回 + * + * @see SalarySendGrantTypeEnum + */ + private String grantType; + + + private List includeObjParams; + + + private List excludeObjParams; + + public static void checkParam(SalarySendRangeSaveParam saveParam, Long employeeId, String tenantKey) { + if (saveParam.getSalarySendId() == null) { + throw new SalaryRunTimeException("工资单发放id不能为空"); + } + + if (saveParam.getGrantType() == null) { + throw new SalaryRunTimeException("操作类型不能为空"); + } + + if (CollectionUtils.isEmpty(saveParam.getIncludeObjParams())) { + throw new SalaryRunTimeException("对象不能为空"); + } + } + + @Data + @AllArgsConstructor + @NoArgsConstructor + public static class SalarySendRangeTargetParam { + + /** + * 对象不能为空 + */ + private Long targetId; + + /** + * 对象类型不能为空 + * @see com.engine.salary.enums.salarysend.SalarySendRangeTargetTypeEnum + */ + private Integer targetType; + } + + public SalarySendRangePO toSalarySendRangePO(User user) { + return SalarySendRangePO.builder() + .id(salarySendRangeId) + .grantType(grantType) + .salarySendId(salarySendId) + .updateTime(new Date()) + .creator((long) user.getUID()) + .deleteType(0) + .tenantKey(DEFAULT_TENANT_KEY) + .createTime(salarySendId == null ? new Date() : null) + .build(); + } + + public List toSalarySendRangeObj(User user) { + List includeObjs = includeObjParams.stream() + .map(obj -> mapObj(user, obj)) + .map(obj->obj.setRangeType(SalarySendRangeTypeEnum.INCLUDE_OBJ.getValue())) + .collect(Collectors.toList()); + List excludeObjs = excludeObjParams.stream() + .map(obj -> mapObj(user, obj)) + .map(obj -> obj.setRangeType(SalarySendRangeTypeEnum.EXCLUDE_OBJ.getValue())) + .collect(Collectors.toList()); + List rangeObjs = new ArrayList<>(); + rangeObjs.addAll(includeObjs); + rangeObjs.addAll(excludeObjs); + return rangeObjs; + } + + private SalarySendRangeObj mapObj(User user, SalarySendRangeTargetParam obj) { + return SalarySendRangeObj.builder() + .salarySendRangeId(salarySendRangeId) + .salarySendId(salarySendId) + .targetId(obj.getTargetId()) + .targetType(obj.getTargetType()) + .deleteType(0) + .tenantKey(DEFAULT_TENANT_KEY) + .updateTime(new Date()) + .createTime(new Date()) + .creator((long) user.getUID()) + .build(); + } +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/salaryBill/param/SalarySendWithdrawParam.java b/src/com/engine/salary/entity/salaryBill/param/SalarySendWithdrawParam.java index 6e3573beb..df4808dbc 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalarySendWithdrawParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalarySendWithdrawParam.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Collection; +import java.util.List; /** * @Description: 工资单撤回参数 @@ -26,6 +27,8 @@ public class SalarySendWithdrawParam { // @ApiModelProperty("工资单发放Id") private Long salarySendId; + private List salarySendRangeIds; + public static String checkParam(SalarySendWithdrawParam param, Long employeeId, String tenantKey) { if (param.getSalarySendId() == null) { throw new SalaryRunTimeException("工资单发放Id必传"); diff --git a/src/com/engine/salary/entity/salaryBill/po/SalarySendRangeObj.java b/src/com/engine/salary/entity/salaryBill/po/SalarySendRangeObj.java new file mode 100644 index 000000000..f3f682063 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/po/SalarySendRangeObj.java @@ -0,0 +1,71 @@ +package com.engine.salary.entity.salaryBill.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.util.Date; + +/** + * 工资单发放范围项目表 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = true) +public class SalarySendRangeObj { + /** + * 主键id + */ + private Long id; + + /** + * 发放id + */ + private Long salarySendId; + + private Long salarySendRangeId; + + /** + * 范围类型;对象=1;对象中排除=2 + */ + private Integer rangeType; + + /** + * 目标类型,人员=1,部门=2,分部=3,岗位=4,个税扣缴义务人=5,所有人=0 + */ + private Integer targetType; + + /** + * 目标id + */ + private Long targetId; + + /** + * 创建人 + */ + private Long creator; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + private Integer deleteType; + + /** + * 租户ID + */ + private String tenantKey; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/salaryBill/po/SalarySendRangePO.java b/src/com/engine/salary/entity/salaryBill/po/SalarySendRangePO.java new file mode 100644 index 000000000..0831b153b --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/po/SalarySendRangePO.java @@ -0,0 +1,57 @@ +package com.engine.salary.entity.salaryBill.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 工资单发放范围表 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SalarySendRangePO { + /** + * 主键id + */ + private Long id; + + /** + * 发放id + */ + private Long salarySendId; + + /** + * 发放=grant;撤回=withdraw + */ + private String grantType; + + /** + * 创建人 + */ + private Long creator; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + private Integer deleteType; + + /** + * 租户ID + */ + private String tenantKey; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/salaryacct/po/ExcelAcctResultPO.java b/src/com/engine/salary/entity/salaryacct/po/ExcelAcctResultPO.java index a7fc850c5..4e7bc31d4 100644 --- a/src/com/engine/salary/entity/salaryacct/po/ExcelAcctResultPO.java +++ b/src/com/engine/salary/entity/salaryacct/po/ExcelAcctResultPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.salaryacct.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -61,6 +62,7 @@ public class ExcelAcctResultPO { /** * 计算后的值 */ + @Encrypt private String resultValue; /** diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java index 36b8800bd..fdea4f715 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctEmployeePO.java @@ -34,6 +34,7 @@ public class SalaryAcctEmployeePO { /** * 薪资核算的id */ + @SalaryFormulaVar(defaultLabel = "核算记录id", labelId = 86321, dataType = "number") private Long salaryAcctRecordId; /** diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultPO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultPO.java index 432fc138a..b08af315f 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultPO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.salaryacct.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -61,6 +62,7 @@ public class SalaryAcctResultPO { /** * 计算后的值 */ + @Encrypt private String resultValue; /** diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index b07afe044..7ee01453b 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -80,6 +80,8 @@ public class SalaryArchiveBO { columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "员工状态"), "employeeStatus")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "起始发薪日期"), "payStartDate")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "最后发薪日期"), "payEndDate")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "入职日期"), "companystartdate").setDisplay(WeaBoolAttr.FALSE)); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "离职日期"), "dismissdate").setDisplay(WeaBoolAttr.FALSE)); for (SalaryItemPO salaryItem : salaryItems) { columns.add(new WeaTableColumn("100px", salaryItem.getName(), salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX)); } @@ -219,7 +221,7 @@ public class SalaryArchiveBO { if (fromDateItem.after(endTempItem) || endTempItem.before(startItem)) { continue; } - if ( endTempItem.equals(startItem) && flag == true) { + if ( endTempItem.equals(startItem) && flag) { continue; } SalaryArchiveItemDataDTO salaryArchiveItemData = new SalaryArchiveItemDataDTO(); diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index 389f66a64..744157514 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -13,10 +13,15 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentManageRangeSaveParam; +import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryarchive.*; +import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.service.SalaryEmployeeService; +import com.engine.salary.service.TaxAgentManageRangeService; import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; +import com.engine.salary.service.impl.TaxAgentManageRangeServiceImpl; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.excel.ExcelComment; @@ -46,6 +51,10 @@ public class SalaryArchiveExcelBO extends Service { return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + public TaxAgentManageRangeService getTaxAgentManageRangeService() { + return ServiceUtil.getService(TaxAgentManageRangeServiceImpl.class, user); + } + public static String userNameI18n; public static String departmentI18n; public static String jobNumI18n; @@ -180,7 +189,10 @@ public class SalaryArchiveExcelBO extends Service { List mustHeaders = Lists.newArrayList(); - mustHeaders.add(userNameI18n); + if (!importHandleParam.isProcess()) { + //流程中可以使用人员id + mustHeaders.add(userNameI18n); + } mustHeaders.add(taxAgentI18n); // mustHeaders.add(incomeCategoryI18n); // mustHeaders.add(salarySobI18n); @@ -339,6 +351,9 @@ public class SalaryArchiveExcelBO extends Service { * @return */ public static boolean singleRowCheck(List allTodoSalaryArchives, Map map, List headers, int effectiveTimeIndex, List> excelComments, int errorCount, SalaryArchiveImportHandleParam importHandleParam) { + //是否是流程 + boolean process = importHandleParam.isProcess(); + boolean isError = false; String rowindex = "第" + map.get("index") + "行"; // 1.姓名 @@ -369,7 +384,7 @@ public class SalaryArchiveExcelBO extends Service { } Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 && employeeSameIds.get(0) > 0 ? employeeSameIds.get(0) : null; - //员工id 流程定薪使用 + //员工id 流程使用 String empId = Optional.ofNullable(map.get("员工id")).orElse("").toString(); if (StringUtils.isNotBlank(empId)) { employeeSameIds.clear(); @@ -377,6 +392,14 @@ public class SalaryArchiveExcelBO extends Service { employeeId = Long.valueOf(empId); } + if (employeeId == null) { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowindex + "人员存在重复数据,请确定姓名、部门、手机号唯一"); + excelComments.add(errorMessageMap); + isError = true; + return isError; + } + // 用于初始化导入数据校验 map.put("employeeId", employeeId); @@ -408,12 +431,27 @@ public class SalaryArchiveExcelBO extends Service { } Optional optionalTaxAgentEmp = optionalTaxAgent.get().getEmployeeList().stream().filter(f -> finalEmployeeSameIds.contains(f.getEmployeeId())).findFirst(); if (!optionalTaxAgentEmp.isPresent()) { - Map errorMessageMap = Maps.newHashMap(); - errorMessageMap.put("message", rowindex + taxAgentRangeMsg); - excelComments.add(errorMessageMap); + if (process) { + //定薪流程中自动将人员添加进个税扣缴义务人中 + TaxAgentManageRangeSaveParam.TaxAgentSubAdminRangeTargetParam taxAgentSubAdminRangeTargetParam = new TaxAgentManageRangeSaveParam.TaxAgentSubAdminRangeTargetParam(); + taxAgentSubAdminRangeTargetParam.setTargetId(employeeId); + taxAgentSubAdminRangeTargetParam.setTargetType(TargetTypeEnum.EMPLOYEE); + + TaxAgentRangeSaveParam taxAgentRangeSaveParam = new TaxAgentRangeSaveParam(); + taxAgentRangeSaveParam.setTaxAgentId(taxAgentId); + taxAgentRangeSaveParam.setIncludeType(1); + taxAgentRangeSaveParam.setEmployeeStatus(Arrays.asList("0", "1", "2", "3", "4", "5", "6")); + taxAgentRangeSaveParam.setTargetParams(Collections.singletonList(taxAgentSubAdminRangeTargetParam)); + taxAgentRangeSaveParam.setSync(true); + importHandleParam.setTaxAgentRanges(Collections.singletonList(taxAgentRangeSaveParam)); + } else { + Map errorMessageMap = Maps.newHashMap(); + errorMessageMap.put("message", rowindex + taxAgentRangeMsg); + excelComments.add(errorMessageMap); // SalaryArchiveExcelBO.createExcelComment(excelComments, taxAgentRangeMsg, errorCount + 1, errorCount + 1, 0, 0); - isError = true; - return isError; + isError = true; + return isError; + } } else { employeeId = optionalTaxAgentEmp.get().getEmployeeId(); // 除了定薪中的初始化,其他导入存在相同的取第一条 @@ -474,7 +512,7 @@ public class SalaryArchiveExcelBO extends Service { // 必填判空 boolean isEmpty = StringUtils.isEmpty(cellVal) && - (userNameI18n.equals(key.toString()) || taxAgentI18n.equals(key.toString()) || incomeCategoryI18n.equals(key.toString()) || salarySobI18n.equals(key.toString()) + ((userNameI18n.equals(key.toString()) && !process) || taxAgentI18n.equals(key.toString()) || incomeCategoryI18n.equals(key.toString()) || salarySobI18n.equals(key.toString()) // 定薪列表初始化导入必填: 起始发薪日期、生效日期 || ((payStartDateI18n.equals(key.toString()) || effectiveTimeI18n.equals(key.toString())) && importHandleParam.isInit()) // 定薪列表调薪必填: 调整原因、生效日期 diff --git a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java index e5d697e0d..00e64d7d6 100644 --- a/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java +++ b/src/com/engine/salary/entity/salaryarchive/dto/SalaryArchiveListDTO.java @@ -67,6 +67,16 @@ public class SalaryArchiveListDTO { @TableTitle(title = "电话", dataIndex = "mobile", key = "mobile") private String mobile; + /** + * 入职日期 + */ + private String companystartdate; + + /** + * 离职日期 + */ + private String dismissdate; + /** * 工号 */ diff --git a/src/com/engine/salary/entity/salaryarchive/dto/SalaryItemAdjustRecordListDTO.java b/src/com/engine/salary/entity/salaryarchive/dto/SalaryItemAdjustRecordListDTO.java index e1560f5b5..ede032ccb 100644 --- a/src/com/engine/salary/entity/salaryarchive/dto/SalaryItemAdjustRecordListDTO.java +++ b/src/com/engine/salary/entity/salaryarchive/dto/SalaryItemAdjustRecordListDTO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.salaryarchive.dto; +import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.TableTitle; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -50,9 +51,11 @@ public class SalaryItemAdjustRecordListDTO { private String adjustItem; @TableTitle(title = "调整前", dataIndex = "adjustBefore", key = "adjustBefore") + @Encrypt private String adjustBefore; @TableTitle(title = "调整后", dataIndex = "adjustAfter", key = "adjustAfter") + @Encrypt private String adjustAfter; @TableTitle(title = "调整原因", dataIndex = "adjustReason", key = "adjustReason") diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java index 1da90e96c..f3f0baf63 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java @@ -5,7 +5,9 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; +import com.engine.salary.enums.salaryarchive.SalaryArchiveListTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -43,6 +45,11 @@ public class SalaryArchiveImportHandleParam { * @see SalaryArchiveImportTypeEnum */ String importType; + + /** + * 列表类型 + * @see SalaryArchiveListTypeEnum + */ String listType; /** @@ -50,6 +57,11 @@ public class SalaryArchiveImportHandleParam { */ boolean onlyCheck; + /** + * 是否是流程 + */ + boolean isProcess; + //*****************************************************************/ Long currentEmployeeId; @@ -134,6 +146,11 @@ public class SalaryArchiveImportHandleParam { */ List salaryArchiveItemDelSalaryItemIds; + /** + * 待生成的人员范围 + */ + List taxAgentRanges; + /** * 薪资账套 */ diff --git a/src/com/engine/salary/entity/salaryarchive/po/SalaryArchiveItemPO.java b/src/com/engine/salary/entity/salaryarchive/po/SalaryArchiveItemPO.java index be3c54598..4a3a9306a 100644 --- a/src/com/engine/salary/entity/salaryarchive/po/SalaryArchiveItemPO.java +++ b/src/com/engine/salary/entity/salaryarchive/po/SalaryArchiveItemPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.salaryarchive.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -56,6 +57,7 @@ public class SalaryArchiveItemPO { /** * 薪资项目值 */ + @Encrypt private String itemValue; /** diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java index bced4a8a5..9d97479e2 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobItemAggregateBO.java @@ -107,6 +107,7 @@ public class SalarySobItemAggregateBO { .salaryItemGroupId(k) .salaryItemId(salaryItemPO.getId()) .dateType(salaryItemPO.getDataType()) + .valueType(salaryItemPO.getValueType()) .name(salaryItemPO.getName()) .itemHide(salarySobItemPO.getItemHide()) .formulaId(salarySobItemPO.getFormulaId()) diff --git a/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java b/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java index 587e79190..b7b82adb7 100644 --- a/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java +++ b/src/com/engine/salary/entity/salarysob/param/SalarySobRangeSaveParam.java @@ -49,9 +49,9 @@ public class SalarySobRangeSaveParam { private Long targetId; // 安全级别最小值 - private Long minSecLevel; +// private Long minSecLevel; // 安全级别最大值 - private Long maxSecLevel; +// private Long maxSecLevel; } } diff --git a/src/com/engine/salary/entity/siaccount/dto/InsuranceCompensationDTO.java b/src/com/engine/salary/entity/siaccount/dto/InsuranceCompensationDTO.java new file mode 100644 index 000000000..312a52344 --- /dev/null +++ b/src/com/engine/salary/entity/siaccount/dto/InsuranceCompensationDTO.java @@ -0,0 +1,97 @@ +package com.engine.salary.entity.siaccount.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; +import java.util.Map; + +/** + * @Author: sy + * @Description: 福利台账-调差 + * @Date: 2022/11/23 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InsuranceCompensationDTO { + + /** + * 主键id + */ + private Long id; + + /** + * 前端自定义id + */ + private String originId; + + /** + * 只读,true为实际调差记录,false为调差配置数据(非实际调差记录) + * + */ + private Boolean status; + + /** + * 缴纳组织 + */ + private Long paymentOrganization; + + /** + * 员工id + */ + private Long employeeId; + + /** + * 统计调差福利 + */ + private Integer welfareType; + + /** + * 统计调差福利类型 + */ + private String categoryType; + + /** + * 统计调差福利类型选项 + */ + private List> categoryTypeOptions; + + /** + * 国家核算金额 + */ + private String countryTotal; + + /** + * 公司核算金额 + */ + private String companyTotal; + + /** + * 应调差额 + */ + private String adjustmentTotal; + + /** + * 调差到 + */ + private Long adjustTo; + + /** + * 对象 + */ + private Long target; + + /** + * 对象选项 + */ + private Map targetOptions; + + /** + * 账单月份 + */ + private String billMonth; +} diff --git a/src/com/engine/salary/entity/siaccount/param/CompensationParam.java b/src/com/engine/salary/entity/siaccount/param/CompensationParam.java new file mode 100644 index 000000000..7eeb7cb8f --- /dev/null +++ b/src/com/engine/salary/entity/siaccount/param/CompensationParam.java @@ -0,0 +1,48 @@ +package com.engine.salary.entity.siaccount.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author: sy + * @Description: 福利台账-调差请求参数 + * @Date: 2022/11/23 + **/ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class CompensationParam { + + /** + * 缴纳组织 + */ + private Long paymentOrganization; + + /** + * 对象,指InsuranceAccountDetailPO.id + */ + private Long target; + + /** + * 指被调差的人员id + */ + private String employeeId; + + /** + * 账单月份 + */ + private String billMonth; + + /** + * 统计调差福利 + */ + private Integer welfareType; + + /** + * 统计调差福利项,即社保、公积金、其他福利类型下的具体项目 + */ + private String categoryType; +} diff --git a/src/com/engine/salary/entity/siaccount/po/ExcelInsuranceDetailPO.java b/src/com/engine/salary/entity/siaccount/po/ExcelInsuranceDetailPO.java index 7f7544456..4e7889544 100644 --- a/src/com/engine/salary/entity/siaccount/po/ExcelInsuranceDetailPO.java +++ b/src/com/engine/salary/entity/siaccount/po/ExcelInsuranceDetailPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.siaccount.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -97,6 +98,7 @@ public class ExcelInsuranceDetailPO { /** * 社保缴纳基数 */ + @Encrypt private String socialPaymentBaseString; /** @@ -107,6 +109,7 @@ public class ExcelInsuranceDetailPO { /** * 公积金缴纳基数 */ + @Encrypt private String fundPaymentBaseString; /** @@ -117,51 +120,61 @@ public class ExcelInsuranceDetailPO { /** * 其他福利缴纳基数 */ + @Encrypt private String otherPaymentBaseString; /** * 社保个人缴费明细 */ + @Encrypt private String socialPerJson; /** * 社保个人合计 */ + @Encrypt private String socialPerSum; /** * 公积金个人缴费明细 */ + @Encrypt private String fundPerJson; /** * 公积金个人合计 */ + @Encrypt private String fundPerSum; /** * 其他福利个人缴费明细 */ + @Encrypt private String otherPerJson; /** * 其他福利个人合计 */ + @Encrypt private String otherPerSum; /** * 个人合计 */ + @Encrypt private String perSum; /** * 社保单位缴费明细 */ + @Encrypt private String socialComJson; /** * 社保单位合计 */ + @Encrypt private String socialComSum; /** @@ -187,26 +200,31 @@ public class ExcelInsuranceDetailPO { /** * 单位合计 */ + @Encrypt private String comSum; /** * 社保合计 */ + @Encrypt private String socialSum; /** * 公积金合计 */ + @Encrypt private String fundSum; /** * 其他福利合计 */ + @Encrypt private String otherSum; /** * 合计 */ + @Encrypt private String total; /** diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java index eef9f7627..b3296596e 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountBatchPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.siaccount.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -54,16 +55,19 @@ public class InsuranceAccountBatchPO { /** * 社保缴费总额(单位+个人) */ + @Encrypt private String socialPay; /** * 公积金缴费总额(单位+个人) */ + @Encrypt private String fundPay; /** * 其他福利缴费总额(单位+个人) */ + @Encrypt private String otherPay; /** diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java index 5caeaff88..e8f7ce98f 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailPO.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.siaccount.po; import com.cloudstore.eccom.pc.table.WeaTableType; +import com.engine.salary.annotation.Encrypt; import com.engine.salary.annotation.SalaryTable; import lombok.AllArgsConstructor; import lombok.Builder; @@ -102,6 +103,7 @@ public class InsuranceAccountDetailPO { /** * 社保缴纳基数 */ + @Encrypt private String socialPaymentBaseString; /** @@ -112,6 +114,7 @@ public class InsuranceAccountDetailPO { /** * 公积金缴纳基数 */ + @Encrypt private String fundPaymentBaseString; /** @@ -122,51 +125,61 @@ public class InsuranceAccountDetailPO { /** * 其他福利缴纳基数 */ + @Encrypt private String otherPaymentBaseString; /** * 社保个人缴费明细 */ + @Encrypt private String socialPerJson; /** * 社保个人合计 */ + @Encrypt private String socialPerSum; /** * 公积金个人缴费明细 */ + @Encrypt private String fundPerJson; /** * 公积金个人合计 */ + @Encrypt private String fundPerSum; /** * 其他福利个人缴费明细 */ + @Encrypt private String otherPerJson; /** * 其他福利个人合计 */ + @Encrypt private String otherPerSum; /** * 个人合计 */ + @Encrypt private String perSum; /** * 社保单位缴费明细 */ + @Encrypt private String socialComJson; /** * 社保单位合计 */ + @Encrypt private String socialComSum; /** @@ -192,26 +205,31 @@ public class InsuranceAccountDetailPO { /** * 单位合计 */ + @Encrypt private String comSum; /** * 社保合计 */ + @Encrypt private String socialSum; /** * 公积金合计 */ + @Encrypt private String fundSum; /** * 其他福利合计 */ + @Encrypt private String otherSum; /** * 合计 */ + @Encrypt private String total; /** diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java index cda03ca2e..50897c6b2 100644 --- a/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceAccountDetailTempPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.siaccount.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -98,6 +99,7 @@ public class InsuranceAccountDetailTempPO { /** * 社保缴纳基数 */ + @Encrypt private String socialPaymentBaseString; /** @@ -108,6 +110,7 @@ public class InsuranceAccountDetailTempPO { /** * 公积金缴纳基数 */ + @Encrypt private String fundPaymentBaseString; /** @@ -118,51 +121,61 @@ public class InsuranceAccountDetailTempPO { /** * 其他福利缴纳基数 */ + @Encrypt private String otherPaymentBaseString; /** * 社保个人缴费明细 */ + @Encrypt private String socialPerJson; /** * 社保个人合计 */ + @Encrypt private String socialPerSum; /** * 公积金个人缴费明细 */ + @Encrypt private String fundPerJson; /** * 公积金个人合计 */ + @Encrypt private String fundPerSum; /** * 其他福利个人缴费明细 */ + @Encrypt private String otherPerJson; /** * 其他福利个人合计 */ + @Encrypt private String otherPerSum; /** * 个人合计 */ + @Encrypt private String perSum; /** * 社保单位缴费明细 */ + @Encrypt private String socialComJson; /** * 社保单位合计 */ + @Encrypt private String socialComSum; /** @@ -188,26 +201,31 @@ public class InsuranceAccountDetailTempPO { /** * 单位合计 */ + @Encrypt private String comSum; /** * 社保合计 */ + @Encrypt private String socialSum; /** * 公积金合计 */ + @Encrypt private String fundSum; /** * 其他福利合计 */ + @Encrypt private String otherSum; /** * 合计 */ + @Encrypt private String total; /** diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceCompensationConfigPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceCompensationConfigPO.java new file mode 100644 index 000000000..7bf4e8a79 --- /dev/null +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceCompensationConfigPO.java @@ -0,0 +1,80 @@ +package com.engine.salary.entity.siaccount.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @Author: sy + * @Description: 社保福利台账-调差配置表 + * @Date: 2022/11/28 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_compensation_config +public class InsuranceCompensationConfigPO { + /** + * 主键id + */ + private Long id; + + /** + * 缴纳组织 + */ + private Long paymentAgency; + + /** + * 个税扣缴义务人 + */ + private Long paymentOrganization; + + /** + * 创建人id + */ + private Long creator; + + /** + * 是否删除 + */ + private Integer deleteType; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 租户key + */ + private String tenantKey; + + /** + * 统计调差福利 + */ + private Integer welfareType; + + /** + * 统计调差福利类型 + */ + private String categoryType; + + /** + * 调差到 + */ + private Long adjustTo; + + /** + * 员工id + */ + private Long employeeId; +} diff --git a/src/com/engine/salary/entity/siaccount/po/InsuranceCompensationPO.java b/src/com/engine/salary/entity/siaccount/po/InsuranceCompensationPO.java new file mode 100644 index 000000000..24ebde645 --- /dev/null +++ b/src/com/engine/salary/entity/siaccount/po/InsuranceCompensationPO.java @@ -0,0 +1,106 @@ +package com.engine.salary.entity.siaccount.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * @Author: sy + * @Description: 社保福利台账-调差历史记录表 + * @Date: 2022/11/23 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_compensation_log +public class InsuranceCompensationPO { + + /** + * 主键id + */ + private Long id; + + /** + * 缴纳组织 + */ + private Long paymentAgency; + + /** + * 个税扣缴义务人 + */ + private Long paymentOrganization; + + /** + * 创建人id + */ + private Long creator; + + /** + * 是否删除 + */ + private Integer deleteType; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 租户key + */ + private String tenantKey; + + /** + * 员工id + */ + private Long employeeId; + + /** + * 统计调差福利 + */ + private Integer welfareType; + + /** + * 统计调差福利类型 + */ + private String categoryType; + + /** + * 国家核算金额 + */ + private String countryTotal; + + /** + * 公司核算金额 + */ + private String companyTotal; + + /** + * 应调差额 + */ + private String adjustmentTotal; + + /** + * 调差到 + */ + private Long adjustTo; + + /** + * 账单月份 + */ + private String billMonth; + + //---------条件------- + private Collection ids; + private Collection employeeIds; +} diff --git a/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java index 5bac5a942..2fd3bf1cc 100644 --- a/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java +++ b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java @@ -34,6 +34,7 @@ public class InsuranceArchivesListParam extends BaseQueryParam { private List subcompanyIds; private String departmentIdsStr; + private String subcompanyIdsStr; //状态(多线)") private List statuses; diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesFundSchemePO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesFundSchemePO.java index 352e948fa..5e511ae39 100644 --- a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesFundSchemePO.java +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesFundSchemePO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.siarchives.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -83,6 +84,7 @@ public class InsuranceArchivesFundSchemePO { /** * 公积金缴纳基数 */ + @Encrypt private String fundPaymentBaseString; /** diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesOtherSchemePO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesOtherSchemePO.java index a97420925..5a7453937 100644 --- a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesOtherSchemePO.java +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesOtherSchemePO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.siarchives.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -73,6 +74,7 @@ public class InsuranceArchivesOtherSchemePO { /** * 其他福利缴纳基数 */ + @Encrypt private String otherPaymentBaseString; /** diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesSocialSchemePO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesSocialSchemePO.java index 901977fee..d9c5a6e72 100644 --- a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesSocialSchemePO.java +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesSocialSchemePO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.siarchives.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -79,6 +80,7 @@ public class InsuranceArchivesSocialSchemePO { /** * 社保缴纳基数 */ + @Encrypt private String socialPaymentBaseString; /** diff --git a/src/com/engine/salary/entity/sischeme/po/InsuranceSchemeDetailPO.java b/src/com/engine/salary/entity/sischeme/po/InsuranceSchemeDetailPO.java index 5d1f79fd8..40f491caf 100644 --- a/src/com/engine/salary/entity/sischeme/po/InsuranceSchemeDetailPO.java +++ b/src/com/engine/salary/entity/sischeme/po/InsuranceSchemeDetailPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.sischeme.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -59,11 +60,13 @@ public class InsuranceSchemeDetailPO { /** * 基数上限 */ + @Encrypt private String upperLimit; /** * 基数下限 */ + @Encrypt private String lowerLimit; /** @@ -74,6 +77,7 @@ public class InsuranceSchemeDetailPO { /** * 固定费用 */ + @Encrypt private String fixedCost; /** diff --git a/src/com/engine/salary/entity/taxagent/param/TaxAgentRangeSaveParam.java b/src/com/engine/salary/entity/taxagent/param/TaxAgentRangeSaveParam.java index 65903e463..25333e242 100644 --- a/src/com/engine/salary/entity/taxagent/param/TaxAgentRangeSaveParam.java +++ b/src/com/engine/salary/entity/taxagent/param/TaxAgentRangeSaveParam.java @@ -19,4 +19,7 @@ public class TaxAgentRangeSaveParam extends TaxAgentManageRangeSaveParam { */ @DataCheck(require = true,message = "个税扣缴义务人的id不允许为空") private Long taxAgentId; + + //是否同步/异步执行生成档案 + private boolean sync; } diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java index 6a4ee80f6..2282119c3 100644 --- a/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java +++ b/src/com/engine/salary/entity/taxdeclaration/bo/TaxDeclarationBO.java @@ -2,7 +2,7 @@ package com.engine.salary.entity.taxdeclaration.bo; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.constant.TaxDeclarationDataIndexConstant; -import com.engine.salary.encrypt.datacollection.AddUpSituationEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; @@ -44,6 +44,7 @@ import java.util.stream.Collectors; * @version 1.0 **/ public class TaxDeclarationBO { + private static EncryptUtil encryptUtil = new EncryptUtil(); public static List convert2ListDTO(List taxDeclarations, List simpleEmployees, @@ -413,7 +414,7 @@ public class TaxDeclarationBO { .tenantKey(taxDeclaration.getTenantKey()) .deleteType(NumberUtils.INTEGER_ZERO) .build(); - AddUpSituationEncrypt.encryptAddUpSituation(accumulatedSituation); + encryptUtil.encrypt(accumulatedSituation, AddUpSituation.class); result.getNeedInsertAddUpSituations().add(accumulatedSituation); }); } diff --git a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationDetailPO.java b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationDetailPO.java index 90787406d..e7c4e49b2 100644 --- a/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationDetailPO.java +++ b/src/com/engine/salary/entity/taxdeclaration/po/TaxDeclarationDetailPO.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.taxdeclaration.po; +import com.engine.salary.annotation.Encrypt; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -50,6 +51,7 @@ public class TaxDeclarationDetailPO { /** * 申报表字段的值 */ + @Encrypt private String fieldValue; diff --git a/src/com/engine/salary/enums/salarybill/SalarySendStatusEnum.java b/src/com/engine/salary/enums/salarybill/SalarySendStatusEnum.java index d31bc3011..aa6ef65f7 100644 --- a/src/com/engine/salary/enums/salarybill/SalarySendStatusEnum.java +++ b/src/com/engine/salary/enums/salarybill/SalarySendStatusEnum.java @@ -1,5 +1,7 @@ package com.engine.salary.enums.salarybill; +import com.engine.salary.enums.BaseEnum; + import java.util.Arrays; /** @@ -7,7 +9,7 @@ import java.util.Arrays; * @Author: wangxiangzhong * @Date: 2021/12/9 15:56 */ -public enum SalarySendStatusEnum { +public enum SalarySendStatusEnum implements BaseEnum { UNSEND(0, "未发放", 93286), ALREADYSEND(1, "已发放", 93212), @@ -25,14 +27,17 @@ public enum SalarySendStatusEnum { this.labelId = labelId; } + @Override public Integer getValue() { return value; } + @Override public String getDefaultLabel() { return defaultLabel; } + @Override public Integer getLabelId() { return labelId; } diff --git a/src/com/engine/salary/enums/salarysend/SalarySendGrantTypeEnum.java b/src/com/engine/salary/enums/salarysend/SalarySendGrantTypeEnum.java new file mode 100644 index 000000000..36d9114c8 --- /dev/null +++ b/src/com/engine/salary/enums/salarysend/SalarySendGrantTypeEnum.java @@ -0,0 +1,50 @@ +package com.engine.salary.enums.salarysend; + +import cn.hutool.core.util.StrUtil; + +import java.util.Arrays; +import java.util.Objects; + +public enum SalarySendGrantTypeEnum { + GRANT("grant", "发放", 98590), + WITHDRAW("withdraw", "撤回", 93351); + + private String value; + + private String defaultLabel; + + private int labelId; + + SalarySendGrantTypeEnum(String value, String defaultLabel, int labelId) { + this.value = value; + this.defaultLabel = defaultLabel; + this.labelId = labelId; + } + + public String getValue() { + return value; + } + + public String getDefaultLabel() { + return defaultLabel; + } + + public int getLabelId() { + return labelId; + } + + public static String getDefaultLabelByValue(String value, Long employeeId, String tenantKey) { + return Arrays.stream(SalarySendGrantTypeEnum.values()).filter(r -> r.getValue().equals(value)).findFirst() + .map(SalarySendGrantTypeEnum::getDefaultLabel) + .orElse(StrUtil.EMPTY); + } + + public SalarySendGrantTypeEnum fromValue(String value) { + for (SalarySendGrantTypeEnum salarySendGrantTypeEnum : values()) { + if (Objects.equals(salarySendGrantTypeEnum.getValue(), value)) { + return salarySendGrantTypeEnum; + } + } + return null; + } +} \ No newline at end of file diff --git a/src/com/engine/salary/enums/salarysend/SalarySendRangeTargetTypeEnum.java b/src/com/engine/salary/enums/salarysend/SalarySendRangeTargetTypeEnum.java new file mode 100644 index 000000000..3cfe90888 --- /dev/null +++ b/src/com/engine/salary/enums/salarysend/SalarySendRangeTargetTypeEnum.java @@ -0,0 +1,48 @@ +package com.engine.salary.enums.salarysend; + +import com.engine.salary.enums.BaseEnum; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Objects; + +@AllArgsConstructor +@Getter +public enum SalarySendRangeTargetTypeEnum implements BaseEnum { + USER(1, "人员", 100133), + DEPT(2, "部门", 86185), + SUB_COMPANY(3, "分部", 107369), + POSITION(4, "岗位", 90633), +// TAX_AGENT(5, "个税扣缴义务人", 86184), + ALL(0, "所有人", 107729); + + private final int value; + + private final String defaultLabel; + + private final int labelId; + + @Override + public Integer getLabelId() { + return labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + public static SalarySendRangeTargetTypeEnum fromValue(Integer value) { + for (SalarySendRangeTargetTypeEnum targetTypeEnum : SalarySendRangeTargetTypeEnum.values()) { + if (Objects.equals(targetTypeEnum.getValue(), value)) { + return targetTypeEnum; + } + } + return null; + } +} \ No newline at end of file diff --git a/src/com/engine/salary/enums/salarysend/SalarySendRangeTypeEnum.java b/src/com/engine/salary/enums/salarysend/SalarySendRangeTypeEnum.java new file mode 100644 index 000000000..a604013b3 --- /dev/null +++ b/src/com/engine/salary/enums/salarysend/SalarySendRangeTypeEnum.java @@ -0,0 +1,53 @@ +package com.engine.salary.enums.salarysend; + +import com.engine.salary.enums.BaseEnum; +import com.engine.salary.util.SalaryI18nUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; +import java.util.Optional; + +@AllArgsConstructor +@Getter +public enum SalarySendRangeTypeEnum implements BaseEnum { + + INCLUDE_OBJ(1, "对象", 90396), + EXCLUDE_OBJ(2, "对象中排除", 142728); + + private final int value; + + private final String defaultLabel; + + private final int labelId; + + @Override + public Integer getLabelId() { + return labelId; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDefaultLabel() { + return defaultLabel; + } + + public static String getDefaultLabelByValue(Integer value, Long employeeId, String tenantKey) { + Optional optional = Arrays.stream(SalarySendRangeTypeEnum.values()).filter(r->Integer.valueOf(r.getValue()).equals(value)).findFirst(); + return optional.isPresent()? SalaryI18nUtil.getI18nLabel(optional.get().getLabelId(), optional.get().getDefaultLabel()):""; + } + + public static SalarySendRangeTypeEnum fromValue(int value) { + for (SalarySendRangeTypeEnum salarySendRangeTypeEnum : values()) { + boolean equals = salarySendRangeTypeEnum.getValue().equals(value); + if (equals) { + return salarySendRangeTypeEnum; + } + } + return null; + } +} diff --git a/src/com/engine/salary/enums/salarysob/TargetTypeEnum.java b/src/com/engine/salary/enums/salarysob/TargetTypeEnum.java index 726d0d8c8..04c6497f3 100644 --- a/src/com/engine/salary/enums/salarysob/TargetTypeEnum.java +++ b/src/com/engine/salary/enums/salarysob/TargetTypeEnum.java @@ -20,9 +20,9 @@ public enum TargetTypeEnum implements BaseEnum { DEPT(2, "部门", 86185), SUBCOMPANY(3, "分部", 107369), POSITION(4, "岗位", 90633), - ALL(5, "所有人", 107729), + ALL(5, "所有人", 107729); - SECLEVE(6, "安全级别", 90382),; +// SECLEVE(6, "安全级别", 90382),; // EXT_EMPLOYEE(100, "外部人员", 0); private int value; diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml index 22fa98c1a..309b3a926 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveMapper.xml @@ -92,6 +92,9 @@ , e.workcode , e.lastname as username , e.status AS employeeStatus + , e.companystartdate as companystartdate + , e.enddate as dismissdate + , e.status AS employeeStatus , d.departmentname AS departmentName , c.subcompanyname AS subcompanyName diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml index a54090f6f..3d7f453ac 100644 --- a/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml +++ b/src/com/engine/salary/mapper/salarybill/SalarySendInfoMapper.xml @@ -327,6 +327,14 @@ AND t1.send_status = #{param.sendStatusVal} + + + and t1.send_status = 1 + + + and t1.send_status in (0, 2) + + @@ -347,9 +355,17 @@ WHERE t1.delete_type = 0 - - AND t1.send_status = #{param.sendStatusVal} - + + AND t1.send_status = #{param.sendStatusVal} + + + + and t1.send_status = 1 + + + and t1.send_status in (0, 2) + + @@ -367,11 +383,18 @@ LEFT JOIN hrmdepartment d ON d.id = e.DEPARTMENTID LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1 LEFT JOIN hrsa_tax_agent t2 ON t2.id = t1.tax_agent_id - WHERE - t1.delete_type = 0 - - AND t1.send_status = #{param.sendStatusVal} - + WHERE t1.delete_type = 0 + + AND t1.send_status = #{param.sendStatusVal} + + + + and t1.send_status = 1 + + + and t1.send_status in (0, 2) + + diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.java b/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.java new file mode 100644 index 000000000..aee1b22aa --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.java @@ -0,0 +1,34 @@ +package com.engine.salary.mapper.salarybill; + +import com.engine.salary.entity.salaryBill.dto.SalarySendRangeListDTO; +import com.engine.salary.entity.salaryBill.param.SalarySendRangeQueryParam; +import com.engine.salary.entity.salaryBill.po.SalarySendRangePO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SalarySendRangeMapper { + int deleteByPrimaryKey(Long id); + + int insertSelective(SalarySendRangePO record); + + SalarySendRangePO selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(SalarySendRangePO record); + + List selectByAll(SalarySendRangePO salarySendRangePO); + + List selectBySendIdAndGrantType(@Param("salarySendId") Long salarySendId, + @Param("grantType") String grantType); + + List selectIdsBySendIdAndGrantType(@Param("salarySendId") Long salarySendId, + @Param("grantType") String grantType); + + int updateBatchSelective(List list); + + int batchInsert(@Param("list") List list); + + List selectByParam(@Param("queryParam") SalarySendRangeQueryParam queryParam); + + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.xml b/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.xml new file mode 100644 index 000000000..b3b46a54c --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalarySendRangeMapper.xml @@ -0,0 +1,358 @@ + + + + + + + + + + + + + + + + + + + + + + + + id, salary_send_id, grant_type, creator, create_time, update_time, delete_type, tenant_key + + + + update hrsa_salary_send_range + set delete_type = 1 + where id = #{id,jdbcType=BIGINT} and delete_type = 0 + + + + + + insert into hrsa_salary_send_range + + + salary_send_id, + + + grant_type, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{salarySendId,jdbcType=BIGINT}, + + + #{grantType,jdbcType=VARCHAR}, + + + #{creator,jdbcType=BIGINT}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{deleteType,jdbcType=INTEGER}, + + + #{tenantKey,jdbcType=VARCHAR}, + + + + + + + select HRSA_S_S_R_ID.currval from dual + + insert into hrsa_salary_send_range + + id, + + salary_send_id, + + + grant_type, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + #{id,jdbcType=BIGINT}, + + #{salarySendId,jdbcType=BIGINT}, + + + #{grantType,jdbcType=VARCHAR}, + + + #{creator,jdbcType=BIGINT}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{deleteType,jdbcType=INTEGER}, + + + #{tenantKey,jdbcType=VARCHAR}, + + + + + + + + update hrsa_salary_send_range + + + salary_send_id = #{salarySendId,jdbcType=BIGINT}, + + + grant_type = #{grantType,jdbcType=VARCHAR}, + + + creator = #{creator,jdbcType=BIGINT}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + delete_type = #{deleteType,jdbcType=INTEGER}, + + + tenant_key = #{tenantKey,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + + + + + + + + + + update hrsa_salary_send_range + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.salarySendId,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.grantType,jdbcType=VARCHAR} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.creator,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.createTime,jdbcType=TIMESTAMP} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.updateTime,jdbcType=TIMESTAMP} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.deleteType,jdbcType=INTEGER} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.tenantKey,jdbcType=VARCHAR} + + + + + where id in + + #{item.id,jdbcType=BIGINT} + + + + + + + insert into hrsa_salary_send_range + (salary_send_id, grant_type, creator, create_time, update_time, delete_type, tenant_key + ) + values + + (#{item.salarySendId,jdbcType=BIGINT}, #{item.grantType,jdbcType=VARCHAR}, #{item.creator,jdbcType=BIGINT}, + #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR}) + + + + + insert into hrsa_salary_send_range + (salary_send_id, grant_type, creator, create_time, update_time, delete_type, tenant_key + ) + values + (#{item.salarySendId,jdbcType=BIGINT}, #{item.grantType,jdbcType=VARCHAR}, #{item.creator,jdbcType=BIGINT}, + #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR}) + + + + + insert into hrsa_salary_send_range + (salary_send_id, grant_type, creator, create_time, update_time, delete_type, tenant_key + ) + select + + #{item.salarySendId,jdbcType=BIGINT}, #{item.grantType,jdbcType=VARCHAR}, #{item.creator,jdbcType=BIGINT}, + #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR} + + from dual + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.java b/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.java new file mode 100644 index 000000000..ad98471c9 --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.java @@ -0,0 +1,35 @@ +package com.engine.salary.mapper.salarybill; + +import com.engine.salary.entity.salaryBill.dto.SalarySendUserInfoDTO; +import com.engine.salary.entity.salaryBill.po.SalarySendRangeObj; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface SalarySendRangeObjMapper { + int deleteByPrimaryKey(Long id); + + int insertSelective(SalarySendRangeObj record); + + SalarySendRangeObj selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(SalarySendRangeObj record); + + List selectByAll(SalarySendRangeObj salarySendRangeObj); + + List listBySalarySendIdAndRangeIds(@Param("salarySendId") Long salarySendId, + @Param("salarySendRangeIds") List salarySendRangeId, + @Param("tenantKey") String tenantKey); + + int updateBatchSelective(List list); + + void deleteByRangeIds(@Param("salarySendRangeIds") List salarySendRangeIds, + @Param("tenantKey") String tenantKey); + + int batchInsert(@Param("list") List list); + + int deleteBySalarySendIds(@Param("salarySendIds") Collection salarySendIds); + + List getUserInfoByEmployeeIds(@Param("employeeIds") List employeeIds); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.xml b/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.xml new file mode 100644 index 000000000..680991a2a --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalarySendRangeObjMapper.xml @@ -0,0 +1,363 @@ + + + + + + + + + + + + + + + + + + + + + + id, salary_send_id, salary_send_range_id, range_type, target_type, target_id, creator, + create_time, update_time, delete_type, tenant_key + + + + + + + delete from hrsa_salary_send_range_obj + where id = #{id,jdbcType=BIGINT} + + + + + insert into hrsa_salary_send_range_obj + + + salary_send_id, + + + salary_send_range_id, + + + range_type, + + + target_type, + + + target_id, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{salarySendId,jdbcType=BIGINT}, + + + #{salarySendRangeId,jdbcType=BIGINT}, + + + #{rangeType,jdbcType=INTEGER}, + + + #{targetType,jdbcType=INTEGER}, + + + #{targetId,jdbcType=BIGINT}, + + + #{creator,jdbcType=BIGINT}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{deleteType,jdbcType=INTEGER}, + + + #{tenantKey,jdbcType=VARCHAR}, + + + + + + + update hrsa_salary_send_range_obj + + + salary_send_id = #{salarySendId,jdbcType=BIGINT}, + + + salary_send_range_id = #{salarySendRangeId,jdbcType=BIGINT}, + + + range_type = #{rangeType,jdbcType=INTEGER}, + + + target_type = #{targetType,jdbcType=INTEGER}, + + + target_id = #{targetId,jdbcType=BIGINT}, + + + creator = #{creator,jdbcType=BIGINT}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + delete_type = #{deleteType,jdbcType=INTEGER}, + + + tenant_key = #{tenantKey,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + + + + + + + update hrsa_salary_send_range_obj + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.salarySendId,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.salarySendRangeId,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.rangeType,jdbcType=INTEGER} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.targetType,jdbcType=INTEGER} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.targetId,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.creator,jdbcType=BIGINT} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.createTime,jdbcType=TIMESTAMP} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.updateTime,jdbcType=TIMESTAMP} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.deleteType,jdbcType=INTEGER} + + + + + + + when id = #{item.id,jdbcType=BIGINT} then #{item.tenantKey,jdbcType=VARCHAR} + + + + + where id in + + #{item.id,jdbcType=BIGINT} + + + + + insert into hrsa_salary_send_range_obj + (salary_send_id, salary_send_range_id, range_type, target_type, target_id, creator, + create_time, update_time, delete_type, tenant_key) + values + + (#{item.salarySendId,jdbcType=BIGINT}, #{item.salarySendRangeId,jdbcType=BIGINT}, + #{item.rangeType,jdbcType=INTEGER}, #{item.targetType,jdbcType=INTEGER}, #{item.targetId,jdbcType=BIGINT}, + #{item.creator,jdbcType=BIGINT}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, + #{item.deleteType,jdbcType=INTEGER}, #{item.tenantKey,jdbcType=VARCHAR}) + + + + + insert into hrsa_salary_send_range_obj + (salary_send_id, salary_send_range_id, range_type, target_type, target_id, creator, + create_time, update_time, delete_type, tenant_key) + values (#{item.salarySendId,jdbcType=BIGINT}, #{item.salarySendRangeId,jdbcType=BIGINT}, + #{item.rangeType,jdbcType=INTEGER}, #{item.targetType,jdbcType=INTEGER}, + #{item.targetId,jdbcType=BIGINT}, + #{item.creator,jdbcType=BIGINT}, #{item.createTime,jdbcType=TIMESTAMP}, + #{item.updateTime,jdbcType=TIMESTAMP}, + #{item.deleteType,jdbcType=INTEGER}, #{item.tenantKey,jdbcType=VARCHAR}) + + + + insert into hrsa_salary_send_range_obj + (salary_send_id, salary_send_range_id, range_type, target_type, target_id, creator, + create_time, update_time, delete_type, tenant_key) + + select + #{item.salarySendId,jdbcType=BIGINT}, #{item.salarySendRangeId,jdbcType=BIGINT}, + #{item.rangeType,jdbcType=INTEGER}, #{item.targetType,jdbcType=INTEGER}, #{item.targetId,jdbcType=BIGINT}, + #{item.creator,jdbcType=BIGINT}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateTime,jdbcType=TIMESTAMP}, + #{item.deleteType,jdbcType=INTEGER}, #{item.tenantKey,jdbcType=VARCHAR} + from dual + + + + + update hrsa_salary_send_range_obj + set delete_type = 1 + where salary_send_id in ( + + #{salarySendId} + + ) + and delete_type = 0 + + + + update hrsa_salary_send_range_obj + set delete_type = 1 + where delete_type = 0 + and salary_send_range_id in ( + + #{salarySendId} + + ) + + + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java index 030d68d5f..738208c58 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java +++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java @@ -1,11 +1,9 @@ package com.engine.salary.mapper.siaccount; -import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO; import com.engine.salary.entity.siaccount.param.InsuranceAccountDetailParam; import com.engine.salary.entity.siaccount.param.SupplementAccountBaseParam; import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesEmployeePO; -import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; import org.apache.ibatis.annotations.Param; import java.util.Collection; @@ -168,4 +166,9 @@ public interface InsuranceAccountDetailMapper { * 删除退差数据(账单月份+退差月份+缴纳状态+人员id+个税扣缴义务人) */ void deleteRecessionData(InsuranceAccountDetailPO po); + + /** + * 获取数据(账单月份+缴纳状态+人员id+个税扣缴义务人) + */ + InsuranceAccountDetailPO getOneByBpep(InsuranceAccountDetailPO po); } diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml index 71b1b07c0..4901c5000 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml +++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml @@ -328,6 +328,7 @@ AND t.payment_organization = #{paymentOrganization} AND t.employee_id = #{employeeId} AND t.supplementary_month = #{supplementaryMonth} + AND t.payment_status = 1 + SELECT + t.id,t.employee_id,t.social_per_json,t.social_com_json, + t.fund_per_json,t.fund_com_json,t.other_per_json, + t.other_com_json,t.social_per_sum,t.social_com_sum, + t.fund_per_sum,t.fund_com_sum,t.other_per_sum, + t.other_com_sum,t.per_sum,t.com_sum,t.payment_organization, + t.total, t.social_sum, t.fund_sum, t.other_sum + FROM + hrsa_bill_detail t + WHERE t.delete_type = 0 + AND t.bill_month = #{billMonth} + AND t.payment_status = #{paymentStatus} + AND t.payment_organization = #{paymentOrganization} + AND t.employee_id = #{employeeId} + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceCompensationConfigMapper.java b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationConfigMapper.java new file mode 100644 index 000000000..e9756492f --- /dev/null +++ b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationConfigMapper.java @@ -0,0 +1,19 @@ +package com.engine.salary.mapper.siaccount; + +import com.engine.salary.entity.siaccount.po.InsuranceCompensationConfigPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface InsuranceCompensationConfigMapper { + + void batchInsert(@Param("collection") Collection compensationConfigPOS); + + void insert(InsuranceCompensationConfigPO compensationConfigPO); + + void deleteByPayOrg(Long paymentOrganization); + + List queryByPayOrg(@Param("paymentOrganization") Long paymentOrganization); + +} diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceCompensationConfigMapper.xml b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationConfigMapper.xml new file mode 100644 index 000000000..fda8f1f01 --- /dev/null +++ b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationConfigMapper.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + t.id + , t.payment_agency + , t.employee_id + , t.payment_organization + , t.welfare_type + , t.category_type + , t.adjust_to + , t.create_time + , t.update_time + , t.creator + , t.delete_type + , t.tenant_key + + + + INSERT INTO hrsa_compensation_config( + id, + employee_id, + payment_organization, + welfare_type, + category_type, + adjust_to, + create_time, + update_time, + creator, + delete_type, + tenant_key + ) + VALUES + + ( + #{item.id}, + #{item.employeeId}, + #{item.paymentOrganization}, + #{item.welfareType}, + #{item.categoryType}, + #{item.adjustTo}, + #{item.createTime}, + #{item.updateTime}, + #{item.creator}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + INSERT INTO hrsa_compensation_config( + id, + employee_id, + payment_organization, + welfare_type, + category_type, + adjust_to, + create_time, + update_time, + creator, + delete_type, + tenant_key + ) + + + select + #{item.id,jdbcType=DOUBLE}, + #{item.employeeId,jdbcType=DOUBLE}, + #{item.paymentOrganization,jdbcType=DOUBLE}, + #{item.welfareType,jdbcType=INTEGER}, + #{item.categoryType,jdbcType=VARCHAR}, + #{item.adjustTo,jdbcType=DOUBLE}, + #{item.createTime,jdbcType=DATE}, + #{item.updateTime,jdbcType=DATE}, + #{item.creator,jdbcType=DOUBLE}, + #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR} + + from dual + + + + + INSERT INTO hrsa_compensation_config( + id, + employee_id, + payment_organization, + welfare_type, + category_type, + adjust_to, + create_time, + update_time, + creator, + delete_type, + tenant_key + ) + VALUES + ( + #{item.id}, + #{item.employeeId}, + #{item.paymentOrganization}, + #{item.welfareType}, + #{item.categoryType}, + #{item.adjustTo}, + #{item.createTime}, + #{item.updateTime}, + #{item.creator}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + insert into hrsa_compensation_config ( + id, + employee_id, + payment_organization, + welfare_type, + category_type, + adjust_to, + create_time, + update_time, + creator, + delete_type, + tenant_key) + VALUES ( + #{id}, + #{employeeId}, + #{paymentOrganization}, + #{welfareType}, + #{categoryType}, + #{adjustTo}, + #{createTime}, + #{updateTime}, + #{creator}, + #{deleteType}, + #{tenantKey}) + + + + UPDATE hrsa_compensation_config + SET delete_type = 1 + WHERE payment_organization = #{paymentOrganization} + AND delete_type = 0 + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.java b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.java new file mode 100644 index 000000000..e96a6b8bb --- /dev/null +++ b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.java @@ -0,0 +1,28 @@ +package com.engine.salary.mapper.siaccount; + +import com.engine.salary.entity.siaccount.po.InsuranceCompensationPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface InsuranceCompensationMapper { + + void batchInsert(@Param("collection") Collection insuranceCompensationPOS); + + void insert(InsuranceCompensationPO insuranceCompensationPO); + + InsuranceCompensationPO getById(Long id); + + List queryByBillMonthAndPayOrg(@Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization); + + InsuranceCompensationPO getOneByBillMonthPayOrgEmpId(InsuranceCompensationPO insuranceCompensationPO); + + List getByBillMonthPayOrgEmpIds(InsuranceCompensationPO insuranceCompensationPO); + + void deleteById(Long id); + + void deleteByBillMonthAndPayOrg(@Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization); + + void deleteByBillMonthPayOrgEmpIds(InsuranceCompensationPO insuranceCompensationPO); +} diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.xml b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.xml new file mode 100644 index 000000000..7e3d4e321 --- /dev/null +++ b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.xml @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + t.id + , t.payment_agency + , t.employee_id + , t.payment_organization + , t.welfare_type + , t.category_type + , t.country_total + , t.company_total + , t.adjustment_total + , t.adjust_to + , t.bill_month + , t.create_time + , t.update_time + , t.creator + , t.delete_type + , t.tenant_key + + + + INSERT INTO hrsa_compensation_log( + id, + employee_id, + payment_organization, + welfare_type, + category_type, + country_total, + company_total, + adjustment_total, + adjust_to, + bill_month, + create_time, + update_time, + creator, + delete_type, + tenant_key + ) + VALUES + + ( + #{item.id}, + #{item.employeeId}, + #{item.paymentOrganization}, + #{item.welfareType}, + #{item.categoryType}, + #{item.countryTotal}, + #{item.companyTotal}, + #{item.adjustmentTotal}, + #{item.adjustTo}, + #{item.billMonth}, + #{item.createTime}, + #{item.updateTime}, + #{item.creator}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + INSERT INTO hrsa_compensation_log( + id, + employee_id, + payment_organization, + welfare_type, + category_type, + country_total, + company_total, + adjustment_total, + adjust_to, + bill_month, + create_time, + update_time, + creator, + delete_type, + tenant_key + ) + + + select + #{item.id,jdbcType=DOUBLE}, + #{item.employeeId,jdbcType=DOUBLE}, + #{item.paymentOrganization,jdbcType=DOUBLE}, + #{item.welfareType,jdbcType=INTEGER}, + #{item.categoryType,jdbcType=VARCHAR}, + #{item.countryTotal,jdbcType=VARCHAR}, + #{item.companyTotal,jdbcType=VARCHAR}, + #{item.adjustmentTotal,jdbcType=VARCHAR}, + #{item.adjustTo,jdbcType=DOUBLE}, + #{item.billMonth,jdbcType=VARCHAR}, + #{item.createTime,jdbcType=DATE}, + #{item.updateTime,jdbcType=DATE}, + #{item.creator,jdbcType=DOUBLE}, + #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR} + from dual + + + + + INSERT INTO hrsa_compensation_log( + id, + employee_id, + payment_organization, + welfare_type, + category_type, + country_total, + company_total, + adjustment_total, + adjust_to, + bill_month, + create_time, + update_time, + creator, + delete_type, + tenant_key + ) + VALUES + ( + #{item.id}, + #{item.employeeId}, + #{item.paymentOrganization}, + #{item.welfareType}, + #{item.categoryType}, + #{item.countryTotal}, + #{item.companyTotal}, + #{item.adjustmentTotal}, + #{item.adjustTo}, + #{item.billMonth}, + #{item.createTime}, + #{item.updateTime}, + #{item.creator}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + + insert into hrsa_compensation_log ( + id, + employee_id, + payment_organization, + welfare_type, + category_type, + country_total, + company_total, + adjustment_total, + adjust_to, + bill_month, + create_time, + update_time, + creator, + delete_type, + tenant_key) + VALUES ( + #{id}, + #{employeeId}, + #{paymentOrganization}, + #{welfareType}, + #{categoryType}, + #{countryTotal}, + #{companyTotal}, + #{adjustmentTotal}, + #{adjustTo}, + #{billMonth}, + #{createTime}, + #{updateTime}, + #{creator}, + #{deleteType}, + #{tenantKey}) + + + + + + + + + + + + + + + UPDATE hrsa_compensation_log + SET delete_type = 1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_compensation_log + SET delete_type = 1 + WHERE bill_month = #{billMonth} + AND payment_organization = #{paymentOrganization} + AND delete_type = 0 + + + + UPDATE hrsa_compensation_log + SET delete_type = 1 + WHERE bill_month = #{billMonth} + AND payment_organization = #{paymentOrganization} + AND delete_type = 0 + + AND employee_id IN + + #{employeeId} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.java b/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.java index 539655d4c..75fbefcaa 100644 --- a/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.java +++ b/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.java @@ -21,6 +21,13 @@ public interface SIAccountDetailTempMapper { */ void batchDelAccountTempDetails(@Param("employeeIds") Collection employeeIds, @Param("billMonth") String billMonth); + /** + * 批量删除 + * @param employeeIds + * @param billMonth + */ + void batchDelByEmpIdsAndMonthAndPayOrg(@Param("employeeIds") Collection employeeIds, @Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization); + /** * 批量保存 * @param accounts diff --git a/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.xml b/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.xml index 4ff9acfea..f99461416 100644 --- a/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.xml +++ b/src/com/engine/salary/mapper/siaccount/SIAccountDetailTempMapper.xml @@ -111,6 +111,19 @@ + + + UPDATE hrsa_bill_detail_temp + SET delete_type = 1 + WHERE delete_type = 0 + AND bill_month = #{billMonth} + AND payment_organization = #{paymentOrganization} + AND employee_id IN + + #{employeeId} + + + INSERT INTO hrsa_bill_detail_temp diff --git a/src/com/engine/salary/process/salaryArchive/SalaryArchiveActionAPI.java b/src/com/engine/salary/process/salaryArchive/SalaryArchiveActionAPI.java index d8e082ba6..51364ff38 100644 --- a/src/com/engine/salary/process/salaryArchive/SalaryArchiveActionAPI.java +++ b/src/com/engine/salary/process/salaryArchive/SalaryArchiveActionAPI.java @@ -34,20 +34,6 @@ public class SalaryArchiveActionAPI { return ServiceUtil.getService(SalaryArchiveWrapper.class, user); } - /** - * 获取薪资档案列表 - * - * @return - * @param importType=salaryItemAdjust(调薪),taxAgentAdjust(调整个税扣缴义务人),init(档案初始化) - */ -// @GET -// @Path("/selectSalaryArchiveColumns") -// @Produces(MediaType.APPLICATION_JSON) -// public String selectSalarySobList(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam("importType") String importType) { -// User user = HrmUserVarify.getUser(request, response); -// return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::selectSalaryArchiveColumns,importType); -// } - /** * 前置校验、列表添加接口 * @param importData @@ -78,6 +64,26 @@ public class SalaryArchiveActionAPI { return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::importSalaryArchiveInit, importData); } + @POST + @Path("/checkAdjustmentSalaryArchive") + @Produces(MediaType.APPLICATION_JSON) + public String checkAdjustmentSalaryArchive(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportActionParam importData) { + User user = HrmUserVarify.getUser(request, response); + importData.setImportType("salaryItemAdjust"); + importData.setAddData(true); + return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::checkAdjustmentSalaryArchive, importData); + } + + @POST + @Path("/adjustmentSalaryArchive") + @Produces(MediaType.APPLICATION_JSON) + public String adjustmentSalaryArchive(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportActionParam importData) { + User user = HrmUserVarify.getUser(request, response); + importData.setImportType("salaryItemAdjust"); + importData.setAddData(true); + return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::adjustmentSalaryArchive, importData); + } + // /** // * 导入薪资档案附件上传前置校验 // * @param importParam diff --git a/src/com/engine/salary/service/ColumnBuildService.java b/src/com/engine/salary/service/ColumnBuildService.java index 9ec02d2e6..c1aec0b1b 100644 --- a/src/com/engine/salary/service/ColumnBuildService.java +++ b/src/com/engine/salary/service/ColumnBuildService.java @@ -3,6 +3,7 @@ package com.engine.salary.service; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; import com.engine.salary.entity.siaccount.po.InsuranceAccountInspectPO; +import com.engine.salary.entity.siaccount.po.InsuranceCompensationPO; import java.util.List; @@ -26,5 +27,10 @@ public interface ColumnBuildService { List buildCommonColumns(List pos); List buildInspectColumns(List pos, Long paymentOrganization); + + /** + * 调差详情表头元素 + */ + List buildCompensationColumns(); } diff --git a/src/com/engine/salary/service/SICompensationService.java b/src/com/engine/salary/service/SICompensationService.java new file mode 100644 index 000000000..b79c29fc4 --- /dev/null +++ b/src/com/engine/salary/service/SICompensationService.java @@ -0,0 +1,36 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.hrm.dto.HrmInfoDTO; +import com.engine.salary.entity.hrm.param.HrmQueryParam; +import com.engine.salary.entity.siaccount.dto.InsuranceCompensationDTO; +import com.engine.salary.entity.siaccount.param.CompensationParam; +import com.engine.salary.util.page.PageInfo; + +import java.util.List; +import java.util.Map; + +public interface SICompensationService { + + List getEmployeeListToCompensation(HrmQueryParam param); + + List> compensationCategoryType(Long id); + + List> compensationComTotal(List paramList); + + Map compensationAccount(List list); + + /** + * 保存社保调差默认配置 + */ + String compensationConfigSave(List param); + + /** + * 社保调差撤回 + */ + String compensationRevert(InsuranceCompensationDTO param); + + /** + * 社保调差历史记录列表 + */ + Map compensationList(String billMonth, Long paymentOrganization); +} diff --git a/src/com/engine/salary/service/SalaryArchiveService.java b/src/com/engine/salary/service/SalaryArchiveService.java index 296a31fb7..9ef63a791 100644 --- a/src/com/engine/salary/service/SalaryArchiveService.java +++ b/src/com/engine/salary/service/SalaryArchiveService.java @@ -219,4 +219,10 @@ public interface SalaryArchiveService { * 处理异常数据 */ Map handleRepeatData(); + + /** + * 处理增量数据 + * @param currentEmployeeId + */ + void handleChangeData(Long currentEmployeeId); } diff --git a/src/com/engine/salary/service/SalarySendRangeObjService.java b/src/com/engine/salary/service/SalarySendRangeObjService.java new file mode 100644 index 000000000..dd3d5355c --- /dev/null +++ b/src/com/engine/salary/service/SalarySendRangeObjService.java @@ -0,0 +1,42 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.salaryBill.po.SalarySendRangeObj; + +import java.util.Collection; +import java.util.List; + +/** + * @Description: 工资单发放撤回筛选范围对象 + * @Author: LFC + */ +public interface SalarySendRangeObjService { + + /** + * 根据名称和工资单发放id获取列表 + * + * @param salarySendId + * @param rangeIds + * @return + */ + List listBySalarySendIdAndRangeIds(Long salarySendId, List rangeIds); + + /** + * 根据工资饭发放id删除 + * + * @param salarySendIds + */ + void deleteBySalarySendIds(Collection salarySendIds); + + void replaceAllByRangeIds(Long rangeIds, List rangeObjs); + + /** + * 根据发放id和范围id获取发放信息id + * + * @param salarySendId + * @param rangeIds + * @return + */ + List getSendInfoIdsBySalarySendIdAndRangeIds(Long salarySendId, List rangeIds); + + void deleteBySalarySendRangeIds(List salarySendRangeIds); +} \ No newline at end of file diff --git a/src/com/engine/salary/service/SalarySendRangeService.java b/src/com/engine/salary/service/SalarySendRangeService.java new file mode 100644 index 000000000..22e891383 --- /dev/null +++ b/src/com/engine/salary/service/SalarySendRangeService.java @@ -0,0 +1,25 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.salaryBill.dto.SalarySendRangeListDTO; +import com.engine.salary.entity.salaryBill.param.SalarySendRangeQueryParam; +import com.engine.salary.entity.salaryBill.param.SalarySendRangeSaveParam; +import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum; +import com.engine.salary.util.page.PageInfo; + +import java.util.Collection; +import java.util.List; + +/** + * @Description: 工资单发放范围 + */ +public interface SalarySendRangeService { + void save(SalarySendRangeSaveParam param); + + PageInfo listPage(SalarySendRangeQueryParam queryParam); + + void deleteBySalarySendIds(Collection sendIds); + + void deleteByIds(List sendRangeIds); + + List getSendInfoIdsBySendId(Long sendId, List sendRangeIds, SalarySendGrantTypeEnum grantType); +} diff --git a/src/com/engine/salary/service/SalarySendService.java b/src/com/engine/salary/service/SalarySendService.java index eed4cf8e6..ef0e0d6bf 100644 --- a/src/com/engine/salary/service/SalarySendService.java +++ b/src/com/engine/salary/service/SalarySendService.java @@ -86,6 +86,7 @@ public interface SalarySendService { */ PageInfo salarySendInfoListPage(SalarySendInfoQueryParam queryParam); + List salarySendInfoList(Long salarySendId); /** * 我的工资单列表详情 * diff --git a/src/com/engine/salary/service/TaxAgentService.java b/src/com/engine/salary/service/TaxAgentService.java index d228b6ace..2890f94b8 100644 --- a/src/com/engine/salary/service/TaxAgentService.java +++ b/src/com/engine/salary/service/TaxAgentService.java @@ -167,7 +167,7 @@ public interface TaxAgentService { * @param ids * @return */ - String delete(Collection ids); + String delete(List ids); /** * 获取个税扣缴义务人下拉列表 @@ -199,6 +199,13 @@ public interface TaxAgentService { */ List listTaxAgentAndEmployeeTree(Long employeeId); + List listAllTaxAgentAndEmployeeTree(); + + /** + * 获取所有个税扣缴义务人和可查看的人员列表(树型) + * + * @return + */ List listTaxAgentAndEmployeeTree(); /** diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index 6bfa10eff..97b8afa01 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -12,9 +12,7 @@ import com.engine.core.impl.Service; import com.engine.salary.biz.AddUpDeductionBiz; import com.engine.salary.biz.EmployBiz; import com.engine.salary.common.LocalDateRange; -import com.engine.salary.encrypt.datacollection.AddUpDeductionEncrypt; -import com.engine.salary.encrypt.datacollection.AddUpDeductionRecordStrDTOEncrypt; -import com.engine.salary.encrypt.datacollection.AddUpDeductionStrDTOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.AddUpDeductionDTO; @@ -78,6 +76,7 @@ import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TEN * @version 1.0 **/ public class AddUpDeductionServiceImpl extends Service implements AddUpDeductionService { + private EncryptUtil encryptUtil = new EncryptUtil(); private AddUpDeductionMapper getAddUpDeductionMapper() { return MapperProxyFactory.getProxy(AddUpDeductionMapper.class); @@ -712,12 +711,12 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction if (oldInfo == null) { addUpDeduction.setCreateTime(yearMonth); addUpDeduction.setUpdateTime(yearMonth); - insertList.add(AddUpDeductionEncrypt.encryptAddUpDeduction(addUpDeduction)); + insertList.add(encryptUtil.encrypt(addUpDeduction, AddUpDeduction.class)); } else { addUpDeduction.setId(oldInfo.getId()); addUpDeduction.setCreateTime(oldInfo.getCreateTime()); addUpDeduction.setUpdateTime(yearMonth); - updateList.add(AddUpDeductionEncrypt.encryptAddUpDeduction(addUpDeduction)); + updateList.add(encryptUtil.encrypt(addUpDeduction, AddUpDeduction.class)); } }); } @@ -855,10 +854,9 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getAddUpDeductionMapper().list(queryParam); - AddUpDeductionStrDTOEncrypt.decryptAddUpDeductionList(list); - return new PageInfo<>(list, AddUpDeductionDTO.class); + List addUpDeductionDTOS = encryptUtil.decryptList(list, AddUpDeductionDTO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), addUpDeductionDTOS, AddUpDeductionDTO.class); } @Override @@ -874,10 +872,11 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); } - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getAddUpDeductionMapper().recordList(queryParam); - AddUpDeductionRecordStrDTOEncrypt.decryptAddUpDeductionRecordDTO(list); - return new PageInfo<>(list, AddUpDeductionRecordDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, AddUpDeductionRecordDTO.class); + encryptUtil.decryptList(page.getList(), AddUpDeductionRecordDTO.class); + return page; } diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index ee52107f4..a26a9c801 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -9,13 +9,15 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.AddUpSituationBiz; import com.engine.salary.biz.EmployBiz; -import com.engine.salary.encrypt.datacollection.AddUpSituationDTOEncrypt; -import com.engine.salary.encrypt.datacollection.AddUpSituationRecordDTOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.AddUpSituationDTO; import com.engine.salary.entity.datacollection.dto.AddUpSituationRecordDTO; -import com.engine.salary.entity.datacollection.param.*; +import com.engine.salary.entity.datacollection.param.AddUpSituationDeleteParam; +import com.engine.salary.entity.datacollection.param.AddUpSituationImportParam; +import com.engine.salary.entity.datacollection.param.AddUpSituationParam; +import com.engine.salary.entity.datacollection.param.AddUpSituationQueryParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; @@ -60,6 +62,7 @@ import java.util.stream.Collectors; import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; public class AddUpSituationServiceImpl extends Service implements AddUpSituationService { + private EncryptUtil encryptUtil = new EncryptUtil(); private AddUpSituationMapper getAddUpSituationMapper() { return MapperProxyFactory.getProxy(AddUpSituationMapper.class); @@ -196,10 +199,9 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation } queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); } - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getAddUpSituationMapper().list(queryParam); - AddUpSituationDTOEncrypt.decryptAddUpSituationDTOList(list); - return new PageInfo<>(list, AddUpSituationDTO.class); + encryptUtil.decryptList(list, AddUpSituationDTO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AddUpSituationDTO.class); } @@ -216,11 +218,12 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); } - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getAddUpSituationMapper().recordList(queryParam); - AddUpSituationRecordDTOEncrypt.decryptAddUpSituationRecordDTOList(list); - return new PageInfo<>(list, AddUpSituationRecordDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, AddUpSituationRecordDTO.class); + encryptUtil.decryptList(page.getList(), AddUpSituationRecordDTO.class); + return page; } @Override diff --git a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java index d2865804d..fbaf62b40 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteDataServiceImpl.java @@ -134,9 +134,8 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getAttendQuoteDataMapper().list(queryParam); - PageInfo page = new PageInfo(list); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AttendQuoteDataBaseDTO.class); return page; } @@ -487,7 +486,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa if (CollectionUtils.isNotEmpty(values)) { log.info("考勤数据:{}", values); //去除空值 - values = values.stream().filter(po->StringUtils.isNotBlank(po.getDataValue())).collect(Collectors.toList()); + values = values.stream().filter(po -> StringUtils.isNotBlank(po.getDataValue())).collect(Collectors.toList()); dataValueBiz.insertData(values); } } @@ -785,8 +784,8 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa } /** - * @description 编辑数据 * @return null + * @description 编辑数据 * @author Harryxzy * @date 2022/10/28 14:40 */ @@ -799,33 +798,33 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa ids.add(attendQuoteDataEditParam.getId()); AttendQuoteDataQueryParam build = AttendQuoteDataQueryParam.builder().ids(ids).build(); List list = dataBiz.list(build); - if(list == null || list.size() == 0){ + if (list == null || list.size() == 0) { throw new SalaryRunTimeException("该数据不存在!"); } Map attendQuoteFieldData = new HashMap<>(); - for(Map.Entry entrySet:attendQuoteData.entrySet()){ + for (Map.Entry entrySet : attendQuoteData.entrySet()) { String[] s = entrySet.getKey().split("_"); - attendQuoteFieldData.put(s[0],entrySet.getValue()); + attendQuoteFieldData.put(s[0], entrySet.getValue()); } - for(Map.Entry entrySet : attendQuoteFieldData.entrySet()){ + for (Map.Entry entrySet : attendQuoteFieldData.entrySet()) { AttendQuoteDataValuePO updatePO = AttendQuoteDataValuePO.builder().employeeId(list.get(0).getEmployeeId()).attendQuoteFieldId(SalaryEntityUtil.string2Long(entrySet.getKey())).dataValue(entrySet.getValue()).build(); attendQuoteDataValueBiz.updateDataValue(updatePO); } } /** - * @description 获取数据 * @return void + * @description 获取数据 * @author Harryxzy * @date 2022/10/31 14:12 */ @Override - public Map getData(AttendQuoteDataEditParam attendQuoteDataEditParam) { + public Map getData(AttendQuoteDataEditParam attendQuoteDataEditParam) { ArrayList ids = new ArrayList<>(); ids.add(attendQuoteDataEditParam.getId()); AttendQuoteDataQueryParam build = AttendQuoteDataQueryParam.builder().ids(ids).build(); List list = dataBiz.list(build); - if(list==null || list.size()==0){ + if (list == null || list.size() == 0) { throw new SalaryRunTimeException("该数据不存在!"); } // 所有考勤字段 @@ -853,7 +852,7 @@ public class AttendQuoteDataServiceImpl extends Service implements AttendQuoteDa result.putAll(weaTable.makeDataResult()); result.success(); Map datas = new HashMap<>(); - datas.put("data",listMaps.get(0)); + datas.put("data", listMaps.get(0)); datas.put("dataKey", result.getResultMap()); return datas; } diff --git a/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java index 719d6cafb..f8d4b8eba 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java @@ -65,9 +65,8 @@ public class AttendQuoteFieldServiceImpl extends Service implements AttendQuoteF @Override public PageInfo listPage(AttendQuoteFieldQueryParam queryParam) { - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getAttendQuoteFieldMapper().list(queryParam); - return new PageInfo<>(list); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, AttendQuoteFieldListDTO.class); } diff --git a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java index 6c6ba3e3c..177cca276 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteServiceImpl.java @@ -79,9 +79,9 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic queryParam.setSalarySobIds(salarySobIds); } - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getAttendQuoteMapper().list(queryParam); - return new PageInfo<>(list, AttendQuoteListDTO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, AttendQuoteListDTO.class); } @Override diff --git a/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java b/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java index 93eedcbd7..64a053093 100644 --- a/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java +++ b/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java @@ -388,4 +388,24 @@ public class ColumnBuildServiceImpl extends Service implements ColumnBuildServic result.put(WelfareTypeEnum.OTHER.getValue(), otherColumns); return result; } + + @Override + public List buildCompensationColumns() { + List list = new ArrayList<>(); + + WeaTableColumn weaTableNameColumn = new WeaTableColumn("300px",SalaryI18nUtil.getI18nLabel( 87000, "调差对象"), "target"); + weaTableNameColumn.setFixed("left"); + list.add(weaTableNameColumn); + + list.add(new WeaTableColumn("100px",SalaryI18nUtil.getI18nLabel( 87001, "统计调差福利"), "welfareType")); + list.add(new WeaTableColumn("200px",SalaryI18nUtil.getI18nLabel( 87001, "统计调差福利类型(单位)"), "categoryType")); + list.add(new WeaTableColumn("200px",SalaryI18nUtil.getI18nLabel( 87002, "国家核算金额(单位)"), "countryTotal")); + list.add(new WeaTableColumn("200px",SalaryI18nUtil.getI18nLabel( 87003, "公司核算金额(单位)"), "companyTotal")); + list.add(new WeaTableColumn("100px",SalaryI18nUtil.getI18nLabel( 87004, "应调差金额"), "adjustmentTotal")); + list.add(new WeaTableColumn("200px",SalaryI18nUtil.getI18nLabel( 87005, "调差到(单位)"), "adjustTo")); + + + return list; + } + } diff --git a/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java b/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java index 6beac534d..a4d41d813 100644 --- a/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java +++ b/src/com/engine/salary/service/impl/FormulaRunServiceImpl.java @@ -96,6 +96,7 @@ public class FormulaRunServiceImpl extends Service implements FormulaRunService //外部数据源 if (StringUtils.isNotBlank(datasourceId)) { RecordSetDataSource rs = new RecordSetDataSource(datasourceId); + log.error("执行外部sql,{},datasourceId{}", sql,datasourceId); if (rs.executeSql(sql)) { if (rs.next()) { result = rs.getString(sqlReturnKey); diff --git a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java index dd4a026ca..e080fb0c3 100644 --- a/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/OtherDeductionServiceImpl.java @@ -7,8 +7,7 @@ import com.engine.core.impl.Service; import com.engine.salary.biz.EmployBiz; import com.engine.salary.biz.OtherDeductionBiz; import com.engine.salary.constant.SalaryDefaultTenantConstant; -import com.engine.salary.encrypt.datacollection.OtherDeductionListDTOEncrypt; -import com.engine.salary.encrypt.datacollection.OtherDeductionRecordDTOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.OtherDeductionListDTO; import com.engine.salary.entity.datacollection.dto.OtherDeductionRecordDTO; @@ -59,6 +58,7 @@ import java.util.stream.Collectors; import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; public class OtherDeductionServiceImpl extends Service implements OtherDeductionService { + private EncryptUtil encryptUtil = new EncryptUtil(); private OtherDeductionMapper getOtherDeductionMapper() { return MapperProxyFactory.getProxy(OtherDeductionMapper.class); @@ -117,10 +117,11 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction } queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); } - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getOtherDeductionMapper().list(queryParam); - OtherDeductionListDTOEncrypt.decryptOtherDeductionListDTOList(list); - return new PageInfo<>(list, OtherDeductionListDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, OtherDeductionListDTO.class); + encryptUtil.decryptList(page.getList(), OtherDeductionListDTO.class); + return page; } @Override @@ -142,10 +143,11 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction } queryParam.setTaxAgentIds(taxAgentIdsAsAdmin); } - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getOtherDeductionMapper().recordList(queryParam); - OtherDeductionRecordDTOEncrypt.decryptOtherDeductionRecordDTOList(list); - return new PageInfo<>(list, OtherDeductionRecordDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, OtherDeductionRecordDTO.class); + encryptUtil.decryptList(page.getList(), OtherDeductionRecordDTO.class); + return page; } @@ -432,7 +434,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction } List list = getOtherDeductionMapper().list(param); - OtherDeductionListDTOEncrypt.decryptOtherDeductionListDTOList(list); + encryptUtil.decryptList(list, OtherDeductionListDTO.class); // 开启分权并且不是薪酬模块总管理员 if (getTaxAgentService(user).isOpenDevolution() && !getTaxAgentService(user).isChief(employeeId)) { List taxAgentIdsAsAdmin = getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId).stream().map(TaxAgentPO::getId).collect(Collectors.toList()); @@ -526,7 +528,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); //查询详细信息 List list = getOtherDeductionMapper().recordList(param); - OtherDeductionRecordDTOEncrypt.decryptOtherDeductionRecordDTOList(list); + encryptUtil.decryptList(list, OtherDeductionRecordDTO.class); final List> dataRowList = Optional.ofNullable(list) .map(List::stream) .map(operatorStream -> operatorStream.map(dto -> { @@ -780,7 +782,7 @@ public class OtherDeductionServiceImpl extends Service implements OtherDeduction ids.add(otherDeductionParam.getId()); OtherDeductionQueryParam build = OtherDeductionQueryParam.builder().ids(ids).build(); List list = getOtherDeductionMapper().recordList(build); - OtherDeductionRecordDTOEncrypt.decryptOtherDeductionRecordDTOList(list); + encryptUtil.decryptList(list, OtherDeductionRecordDTO.class); if (list == null || list.size() == 0) { throw new SalaryRunTimeException("该数据不存在!"); diff --git a/src/com/engine/salary/service/impl/SIAComparisonResultServiceImpl.java b/src/com/engine/salary/service/impl/SIAComparisonResultServiceImpl.java index d79a76f2e..f5fc62819 100644 --- a/src/com/engine/salary/service/impl/SIAComparisonResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAComparisonResultServiceImpl.java @@ -2,8 +2,7 @@ package com.engine.salary.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.encrypt.siexport.AccountExportPOEncrypt; -import com.engine.salary.encrypt.siexport.ExcelAccountExportPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.siaccount.bo.InsuranceComparisonResultBO; import com.engine.salary.entity.siaccount.dto.InsuranceComparisonResultListDTO; import com.engine.salary.entity.siaccount.param.InsuranceComparisonResultQueryParam; @@ -40,6 +39,7 @@ import java.util.stream.Collectors; * @Date: 2022/9/28 **/ public class SIAComparisonResultServiceImpl extends Service implements SIAComparisonResultService { + private EncryptUtil encryptUtil = new EncryptUtil(); private InsuranceExportMapper getInsuranceExportMapper() { return MapperProxyFactory.getProxy(InsuranceExportMapper.class); @@ -147,10 +147,10 @@ public class SIAComparisonResultServiceImpl extends Service implements SIACompar .collect(Collectors.toList()); accountExportPOS = accountExportPOS.stream().filter(v -> canAccountIds.contains(v.getEmployeeId())).collect(Collectors.toList()); - AccountExportPOEncrypt.decryptAccountExportPOList(accountExportPOS); + encryptUtil.decryptList(accountExportPOS, AccountExportPO.class); //2-查询线下对比数据 List excelAccountExportPOS = getInsuranceExportMapper().exportExcelAccount(queryParam); - ExcelAccountExportPOEncrypt.decryptExcelAccountExportPOList(excelAccountExportPOS); + encryptUtil.decryptList(excelAccountExportPOS, ExcelAccountExportPO.class); //3-构建福利核算对比结果列表表头 List weaTableColumns = InsuranceComparisonResultBO.buildTableColumns4ComparisonResult(); //4-通过线上线下两份数据获得对比结果 diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index b59e86774..a283d790c 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -12,9 +12,7 @@ import com.engine.core.impl.Service; import com.engine.salary.biz.*; import com.engine.salary.component.SalaryWeaTable; import com.engine.salary.constant.SalaryDefaultTenantConstant; -import com.engine.salary.encrypt.siaccount.ExcelInsuranceDetailPOEncrypt; -import com.engine.salary.encrypt.siaccount.InsuranceAccountDetailPOEncrypt; -import com.engine.salary.encrypt.siaccount.SiAccountEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.siaccount.bo.InsuranceAccountBO; import com.engine.salary.entity.siaccount.dto.InsuranceAccountBatchListDTO; @@ -95,6 +93,8 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { private SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); + private EncryptUtil encryptUtil = new EncryptUtil(); + public RecordsBuildService getService(User user) { return ServiceUtil.getService(RecordsBuildServiceImpl.class, user); } @@ -310,11 +310,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getInsuranceAccountDetailMapper().list(queryParam); - PageInfo pageInfo = new PageInfo<>(list, InsuranceAccountDetailPO.class); + PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(),queryParam.getPageSize(), + list, InsuranceAccountDetailPO.class); List insuranceAccountDetailPOS = pageInfo.getList(); - InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(insuranceAccountDetailPOS); + encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class); //数据组装 List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId); PageInfo> pageInfos = new PageInfo<>(records); @@ -376,11 +376,11 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getInsuranceAccountDetailMapper().list(queryParam); - PageInfo pageInfo = new PageInfo<>(list, InsuranceAccountDetailPO.class); + PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(),queryParam.getPageSize(), + list, InsuranceAccountDetailPO.class); List insuranceAccountDetailPOS = pageInfo.getList(); - InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(insuranceAccountDetailPOS); + encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class); //数据组装 List> records = getService(user).buildCommonRecords(insuranceAccountDetailPOS, employeeId); PageInfo> pageInfos = new PageInfo<>(records); @@ -422,7 +422,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { datePickerItem.getOtherParams().put("maxDate", maxDate); List billMonthList = getInsuranceAccountBatchMapper().listByTimeRange(minDate, maxDate); - SiAccountEncrypt.decryptInsuranceAccountBatchList(billMonthList); + encryptUtil.decryptList(billMonthList, InsuranceAccountBatchPO.class); if (CollectionUtils.isEmpty(billMonthList)) { datePickerItem.getOtherParams().put("disabledData", Collections.emptyList()); } else { @@ -541,7 +541,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public InsuranceAccountTabDTO tabList(AccountParam build) { InsuranceAccountTabDTO insuranceAccountTabDTO = InsuranceAccountTabDTO.builder().build(); InsuranceAccountBatchPO insuranceAccountBatchPO = getInsuranceAccountBatchMapper().getByBillMonth(build.getBillMonth(), build.getPaymentOrganization()); - insuranceAccountBatchPO = SiAccountEncrypt.decryptInsuranceAccountBatch(insuranceAccountBatchPO); + insuranceAccountBatchPO = encryptUtil.decrypt(insuranceAccountBatchPO, InsuranceAccountBatchPO.class); boolean isShow = false; if (insuranceAccountBatchPO == null || insuranceAccountBatchPO.getBillStatus() == BillStatusEnum.NOT_ARCHIVED.getValue()) { isShow = true; @@ -585,9 +585,9 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public Map changeList(InsuranceAccountDetailParam param) { Map datas = new HashMap<>(); Long employeeId = (long) user.getUID(); - SalaryPageUtil.start(param.getCurrent(), param.getPageSize()); List insuranceArchivesEmployeePOS = getInsuranceAccountDetailMapper().changeList(param.getUserName()); - PageInfo pageInfo = new PageInfo<>(insuranceArchivesEmployeePOS); + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), + insuranceArchivesEmployeePOS, InsuranceArchivesEmployeePO.class); List> records = siArchivesBiz.buildTableData(insuranceArchivesEmployeePOS); PageInfo> pageInfos = new PageInfo<>(records); @@ -647,11 +647,10 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { public Map getInspectTable(InsuranceAccountDetailParam param) { Map datas = new HashMap<>(); - SalaryPageUtil.start(param.getCurrent(), param.getPageSize()); List insuranceAccountInspectPOS = MapperProxyFactory.getProxy(InsuranceAccountInspectMapper.class).getByBillMonth(param.getBillMonth()); List> records = getService(user).buildInspectRecords(insuranceAccountInspectPOS, Long.valueOf(param.getPaymentOrganization())); - - PageInfo> pageInfos = new PageInfo<>(records); + List> paged = SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), records); + PageInfo> pageInfos = new PageInfo<>(paged); pageInfos.setTotal(records.size()); pageInfos.setPageNum(param.getCurrent()); pageInfos.setPageSize(param.getPageSize()); @@ -772,7 +771,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { @Override public List> welfareData(String billMonth, List employeeIds, Long taxAgentId) { InsuranceAccountBatchPO insuranceAccountBatchPO = getInsuranceAccountBatchMapper().getByBillMonth(billMonth, taxAgentId); - insuranceAccountBatchPO = SiAccountEncrypt.decryptInsuranceAccountBatch(insuranceAccountBatchPO); + insuranceAccountBatchPO = encryptUtil.decrypt(insuranceAccountBatchPO, InsuranceAccountBatchPO.class); if (insuranceAccountBatchPO == null || Objects.equals(BillStatusEnum.NOT_ARCHIVED.getValue(), insuranceAccountBatchPO.getBillStatus())) { return Lists.newArrayList(); } @@ -931,7 +930,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { BigDecimal perSum = new BigDecimal("0"); BigDecimal comSum = new BigDecimal("0"); for (InsuranceAccountDetailPO item : v) { - InsuranceAccountDetailPOEncrypt.decryptItem(item); + encryptUtil.decrypt(item, InsuranceAccountDetailPO.class); insuranceAccountDetailPO.setId(item.getId()); BigDecimal socialPerSum = StringUtils.isBlank(item.getSocialPerSum()) ? new BigDecimal("0") : new BigDecimal(item.getSocialPerSum()); BigDecimal socialComSum = StringUtils.isBlank(item.getSocialComSum()) ? new BigDecimal("0") : new BigDecimal(item.getSocialComSum()); @@ -1312,7 +1311,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { excelComments.add(errorMessageMap); } else { //拼装待更新数据 - InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(list); + encryptUtil.decryptList(list, InsuranceAccountDetailPO.class); updateInsuranceAccountDetailList.add(handleInsuranceAccountDetail(list.get(0), map)); } @@ -1327,7 +1326,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { } //将待更新列表加密 - InsuranceAccountDetailPOEncrypt.encryptInsuranceAccountDetailPOList(updateInsuranceAccountDetailList); + encryptUtil.encryptList(updateInsuranceAccountDetailList, InsuranceAccountDetailPO.class); //更新 for(InsuranceAccountDetailPO po : updateInsuranceAccountDetailList) { getSiAccountBiz(user).updateByEmployeeIdAndBillMonth(po); @@ -1349,7 +1348,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { List viewListDTOList = pageInfos.getList(); viewListDTOList.stream().filter(f -> f.getPayOrg().equals(taxAgentPo.getName())).collect(Collectors.toList()); InsuranceAccountBatchPO batchPO = getInsuranceAccountBatchMapper().getByBillMonth(billMonth, paymentOrganization); - batchPO = SiAccountEncrypt.decryptInsuranceAccountBatch(batchPO); + batchPO = encryptUtil.decrypt(batchPO, InsuranceAccountBatchPO.class); //更新 if (viewListDTOList.size() > 0 && batchPO != null) { InsuranceAccountViewListDTO viewListDTO = viewListDTOList.get(0); @@ -1362,7 +1361,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { batchPO.setOtherPay(viewListDTO.getOtherPaySum().replace(",", "")); batchPO.setUpdateTime(new Date()); - batchPO = SiAccountEncrypt.encryptInsuranceAccountBatch(batchPO); + batchPO = encryptUtil.encrypt(batchPO, InsuranceAccountBatchPO.class); getInsuranceAccountBatchMapper().updateById(batchPO); } } @@ -1997,7 +1996,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { } //将待更新列表加密 - ExcelInsuranceDetailPOEncrypt.encryptInsuranceAccountDetailPOList(addCompareList); + encryptUtil.encryptList(addCompareList, ExcelInsuranceDetailPO.class); //删除 if (idList.size() > 0) { getExcelInsuranceDetailMapper().batchDelByIds(idList); @@ -2207,7 +2206,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { List viewListDTOList = pageInfos.getList(); viewListDTOList.stream().filter(f -> f.getPayOrg().equals(taxAgentPo.getName())).collect(Collectors.toList()); InsuranceAccountBatchPO batchPO = getInsuranceAccountBatchMapper().getByBillMonth(billMonth, paymentOrganization); - batchPO = SiAccountEncrypt.decryptInsuranceAccountBatch(batchPO); + batchPO = encryptUtil.decrypt(batchPO, InsuranceAccountBatchPO.class); //更新 if (viewListDTOList.size() > 0 && batchPO != null) { InsuranceAccountViewListDTO viewListDTO = viewListDTOList.get(0); @@ -2220,7 +2219,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { batchPO.setOtherPay(viewListDTO.getOtherPaySum().replace(",", "")); batchPO.setUpdateTime(new Date()); - batchPO = SiAccountEncrypt.encryptInsuranceAccountBatch(batchPO); + batchPO = encryptUtil.encrypt(batchPO, InsuranceAccountBatchPO.class); getInsuranceAccountBatchMapper().updateById(batchPO); } } @@ -2238,7 +2237,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (insuranceAccountDetailPO == null) { throw new SalaryRunTimeException("该条核算数据不存在!"); } - InsuranceAccountDetailPOEncrypt.decryptItem(insuranceAccountDetailPO); + encryptUtil.decrypt(insuranceAccountDetailPO, InsuranceAccountDetailPO.class); String socialPerJson = insuranceAccountDetailPO.getSocialPerJson(); String socialComJson = insuranceAccountDetailPO.getSocialComJson(); String fundPerJson = insuranceAccountDetailPO.getFundPerJson(); @@ -2334,14 +2333,14 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (insuranceAccountDetailPO == null) { throw new SalaryRunTimeException("该条核算数据不存在!"); } - InsuranceAccountDetailPOEncrypt.decryptItem(insuranceAccountDetailPO); + encryptUtil.decrypt(insuranceAccountDetailPO, InsuranceAccountDetailPO.class); accountSocialByData(insuranceAccountDetailPO, param); accountFundByData(insuranceAccountDetailPO, param); accountOtherByData(insuranceAccountDetailPO, param); account(insuranceAccountDetailPO); - InsuranceAccountDetailPOEncrypt.encryptItem(insuranceAccountDetailPO); + encryptUtil.encrypt(insuranceAccountDetailPO, InsuranceAccountDetailPO.class); getInsuranceAccountDetailMapper().updateById(insuranceAccountDetailPO); //刷新_bill_batch表中的统计信息 diff --git a/src/com/engine/salary/service/impl/SICompensationServiceImpl.java b/src/com/engine/salary/service/impl/SICompensationServiceImpl.java new file mode 100644 index 000000000..d3a3c4a36 --- /dev/null +++ b/src/com/engine/salary/service/impl/SICompensationServiceImpl.java @@ -0,0 +1,560 @@ +package com.engine.salary.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alipay.oceanbase.jdbc.StringUtils; +import com.cloudstore.eccom.pc.table.WeaTable; +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.encrypt.EncryptUtil; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.hrm.dto.HrmInfoDTO; +import com.engine.salary.entity.hrm.param.HrmQueryParam; +import com.engine.salary.entity.siaccount.dto.InsuranceCompensationDTO; +import com.engine.salary.entity.siaccount.param.CompensationParam; +import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; +import com.engine.salary.entity.siaccount.po.InsuranceCompensationConfigPO; +import com.engine.salary.entity.siaccount.po.InsuranceCompensationPO; +import com.engine.salary.entity.sicategory.po.ICategoryPO; +import com.engine.salary.enums.siaccount.PaymentStatusEnum; +import com.engine.salary.enums.sicategory.DeleteTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.datacollection.EmployMapper; +import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper; +import com.engine.salary.mapper.siaccount.InsuranceCompensationConfigMapper; +import com.engine.salary.mapper.siaccount.InsuranceCompensationMapper; +import com.engine.salary.mapper.sicategory.ICategoryMapper; +import com.engine.salary.service.ColumnBuildService; +import com.engine.salary.service.SIAccountService; +import com.engine.salary.service.SICategoryService; +import com.engine.salary.service.SICompensationService; +import com.engine.salary.util.SalaryAssert; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.page.Column; +import com.google.common.collect.Lists; +import dm.jdbc.util.IdGenerator; +import org.springframework.beans.BeanUtils; +import weaver.hrm.User; + +import java.math.BigDecimal; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @Author: sy + * @Description: 福利台账-调差实现类 + * @Date: 2022/11/23 + **/ +public class SICompensationServiceImpl extends Service implements SICompensationService { + private EncryptUtil encryptUtil = new EncryptUtil(); + + private InsuranceAccountDetailMapper getInsuranceAccountDetailMapper() { + return MapperProxyFactory.getProxy(InsuranceAccountDetailMapper.class); + } + + private EmployMapper getEmployMapper() { + return MapperProxyFactory.getProxy(EmployMapper.class); + } + + public SICategoryService getSICategoryService(User user) { + return ServiceUtil.getService(SICategoryServiceImpl.class, user); + } + + private SIAccountService getSIAccountService(User user) { + return ServiceUtil.getService(SIAccountServiceImpl.class, user); + } + + private InsuranceCompensationMapper getInsuranceCompensationMapper() { + return MapperProxyFactory.getProxy(InsuranceCompensationMapper.class); + } + + private InsuranceCompensationConfigMapper getInsuranceCompensationConfigMapper() { + return MapperProxyFactory.getProxy(InsuranceCompensationConfigMapper.class); + } + + public ColumnBuildService getColumnBuildService(User user) { + return ServiceUtil.getService(ColumnBuildServiceImpl.class, user); + } + + /** + * 可调差人员 + */ + @Override + public List getEmployeeListToCompensation(HrmQueryParam param) { + // 当前登录人员 + Long currentEmployeeId = (long) user.getUID(); + + //查询账单月份+个税扣缴义务人下的社保福利正常缴纳人员列表 + List normalDataList = getInsuranceAccountDetailMapper().queryNormalListByBillMonth(param.getBillMonth(), param.getPaymentOrganization()); + List empIds = normalDataList.stream().map(InsuranceAccountDetailPO::getEmployeeId).collect(Collectors.toList()); + //生成人员id和bill_detail.id的对应map + Map empIdToTargetMap = SalaryEntityUtil.convert2Map(normalDataList, InsuranceAccountDetailPO::getEmployeeId, InsuranceAccountDetailPO::getId); + + List resultData = new ArrayList<>(); + if (empIds.size() > 0) { + List> partition = Lists.partition(empIds, 1000); + partition.forEach(p -> { + param.setIds(p); + resultData.addAll(getEmployMapper().listHrmInfoByIdAndName(param)); + }); + + } + List finalResultData = new ArrayList<>(); + for (HrmInfoDTO dto : resultData) { + dto.setTarget(empIdToTargetMap.get(dto.getEmployeeId())); + finalResultData.add(dto); + } + + return finalResultData; + } +// public PageInfo getEmployeeListToCompensation(HrmQueryParam param) { +// // 当前登录人员 +// Long currentEmployeeId = (long) user.getUID(); +// +// //查询账单月份+个税扣缴义务人下的社保福利正常缴纳人员列表 +// List normalDataList = getInsuranceAccountDetailMapper().queryNormalListByBillMonth(param.getBillMonth(), param.getPaymentOrganization()); +// List empIds = normalDataList.stream().map(InsuranceAccountDetailPO::getEmployeeId).collect(Collectors.toList()); +// +// List resultData = new ArrayList<>(); +// if (empIds.size() > 0) { +// List> partition = Lists.partition(empIds, 1000); +// partition.forEach(p -> { +// param.setIds(p); +// resultData.addAll(getEmployMapper().listHrmInfoByIdAndName(param)); +// }); +// +// } +// +// // 分页 +// PageInfo page = new PageInfo<>(); +// if (resultData.size() == 0) { +// return page; +// } +// page.setTotal(resultData.size()); +// +// page.setList(SalaryPageUtil.subList(param.getPageNum(), param.getPageSize(), resultData)); +// page.setPageSize(param.getPageSize()); +// page.setPageNum(param.getPageNum()); +// +// +// return page; +// } + + /** + * 调差福利项 + * @param id InsuranceAccountDetailPO.id + */ + @Override + public List> compensationCategoryType(Long id) { + SalaryAssert.notNull(id, SalaryI18nUtil.getI18nLabel(120999, "调差对象必选")); + InsuranceAccountDetailPO insuranceAccountDetailPO = getInsuranceAccountDetailMapper().getById(id); + if (insuranceAccountDetailPO == null) { + return Lists.newArrayList(); + } + encryptUtil.decrypt(insuranceAccountDetailPO, InsuranceAccountDetailPO.class); + List> result = new ArrayList<>(); + String socialComJson = insuranceAccountDetailPO.getSocialComJson(); + if (StringUtils.isNotBlank(socialComJson)) { + Map categoryIdNameMap = getSICategoryService(user).categoryIdNameMap(); + Map socialJson = JSON.parseObject(socialComJson, new HashMap().getClass()); + for (Map.Entry entry : socialJson.entrySet()) { + Map temp = new HashMap<>(); + String insuranceId = entry.getKey(); + if (StringUtils.isNotBlank(categoryIdNameMap.get(insuranceId))) { + temp.put("id", insuranceId); + temp.put("content", categoryIdNameMap.get(insuranceId)); + result.add(temp); + } + } + } + return result; + } + + /** + * 获取当前调差福利类型-公司方支出总计 + */ + @Override + public List> compensationComTotal(List paramList) { + List> resultList = new ArrayList<>(); + paramList.forEach(compensation -> { + Map temp = new HashMap<>(); + temp.put("employeeId", compensation.getEmployeeId()); + if (StringUtils.isBlank(compensation.getCategoryType()) || compensation.getTarget() == null) { + temp.put("error", SalaryI18nUtil.getI18nLabel(84026, "参数错误")); + temp.put("totalNum", "0"); + } else { + + InsuranceAccountDetailPO insuranceAccountDetailPO = getInsuranceAccountDetailMapper().getById(compensation.getTarget()); + if (insuranceAccountDetailPO == null) { + temp.put("error", SalaryI18nUtil.getI18nLabel(121038, "当前月在该缴纳组织下没有核算记录")); + temp.put("totalNum", "0"); + } else { + encryptUtil.decrypt(insuranceAccountDetailPO, InsuranceAccountDetailPO.class); + //判断是否已有调差数据(个税扣缴义务人+账单月份+人员id) + InsuranceCompensationPO nowCompensation = getInsuranceCompensationMapper().getOneByBillMonthPayOrgEmpId(InsuranceCompensationPO.builder() + .billMonth(insuranceAccountDetailPO.getBillMonth()) + .paymentOrganization(insuranceAccountDetailPO.getPaymentOrganization()) + .employeeId(insuranceAccountDetailPO.getEmployeeId()) + .build()); + if (nowCompensation != null) { + temp.put("error", SalaryI18nUtil.getI18nLabel(121039, "当前月在该缴纳组织下已存在调差数据")); + } + + //处理调差数据 + BigDecimal total = new BigDecimal("0"); + List categoryTypeList = Arrays.asList(compensation.getCategoryType().split(",")); + + if (nowCompensation == null && StringUtils.isNotBlank(insuranceAccountDetailPO.getSocialComJson())) { + Map socialJson = JSON.parseObject(insuranceAccountDetailPO.getSocialComJson(), new HashMap().getClass()); + for (Map.Entry entry : socialJson.entrySet()) { + String insuranceId = entry.getKey(); + String num = entry.getValue(); + if (categoryTypeList.contains(insuranceId)) { + total = total.add(new BigDecimal(num)); + } + } + } + + temp.put("totalNum", total.toPlainString()); + } + + } + resultList.add(temp); + }); +// paramList.forEach((paymentOrganization, compensationList) -> { +// List> paymentList = new ArrayList<>(); +// compensationList.forEach(compensation -> { +// Map temp = new HashMap<>(); +// temp.put("employeeId", compensation.getEmployeeId()); +// if (StringUtils.isBlank(compensation.getCategoryType()) || compensation.getTarget() == null) { +// temp.put("error", SalaryI18nUtil.getI18nLabel(84026, "参数错误")); +// temp.put("totalNum", "0"); +// } else { +// +// InsuranceAccountDetailPO insuranceAccountDetailPO = getInsuranceAccountDetailMapper().getById(compensation.getTarget()); +// if (insuranceAccountDetailPO == null) { +// temp.put("error", SalaryI18nUtil.getI18nLabel(121038, "当前月在该缴纳组织下没有核算记录")); +// } +// InsuranceAccountDetailPOEncrypt.decryptItem(insuranceAccountDetailPO); +// BigDecimal total = new BigDecimal("0"); +// List categoryTypeList = Arrays.asList(compensation.getCategoryType().split(",")); +// +// if (StringUtils.isNotBlank(insuranceAccountDetailPO.getSocialComJson())) { +// Map socialJson = JSON.parseObject(insuranceAccountDetailPO.getSocialComJson(), new HashMap().getClass()); +// for (Map.Entry entry : socialJson.entrySet()) { +// String insuranceId = entry.getKey(); +// String num = entry.getValue(); +// if (categoryTypeList.contains(insuranceId)) { +// total = total.add(new BigDecimal(num)); +// } +// } +// } +// +// temp.put("totalNum", total.toPlainString()); +// } +// paymentList.add(temp); +// }); +// result.put(paymentOrganization, paymentList); +// }); + return resultList; + } + + @Override + public Map compensationAccount(List list) { + + long currentEmployeeId = user.getUID(); + List allEmployees = getEmployMapper().listAll(); + Map usernameMap = SalaryEntityUtil.convert2Map(allEmployees, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getUsername); + + Map result = new HashMap<>(); + List errorList = new ArrayList<>(); + List idList = new ArrayList<>(); + //过滤 + list = list.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> + new TreeSet<>(Comparator.comparing(InsuranceCompensationDTO::getTarget))), ArrayList::new)); + + for (InsuranceCompensationDTO param : list) { + if (StringUtils.isBlank(param.getAdjustmentTotal()) || "0".equals(param.getAdjustmentTotal()) || "0.00".equals(param.getAdjustmentTotal())) { + errorList.add(usernameMap.get(param.getEmployeeId()) + "-调差失败:调差数额不正确!"); + continue; + } + if (StringUtils.isBlank(param.getCompanyTotal()) || "0".equals(param.getCompanyTotal()) || "0.00".equals(param.getCompanyTotal())) { + errorList.add(usernameMap.get(param.getEmployeeId()) + "-调差失败:公司核算金额为0,请检查数据是否属实或者当前人员已存在该月调差数据!"); + continue; + } + InsuranceAccountDetailPO insuranceAccountDetailPO = getInsuranceAccountDetailMapper().getById(param.getTarget()); + if (insuranceAccountDetailPO == null) { + errorList.add(usernameMap.get(param.getEmployeeId()) + "-调差失败:调差对象不存在!"); + continue; + } + + encryptUtil.decrypt(insuranceAccountDetailPO, InsuranceAccountDetailPO.class); + if (StringUtils.isNotBlank(insuranceAccountDetailPO.getSocialComJson())) { + Map socialJson = JSON.parseObject(insuranceAccountDetailPO.getSocialComJson(), new HashMap().getClass()); + for (Map.Entry entry : socialJson.entrySet()) { + String insuranceId = entry.getKey(); + String num = entry.getValue(); + if (Objects.equals(String.valueOf(param.getAdjustTo()), insuranceId)) { + BigDecimal adjustmentTo = new BigDecimal(param.getAdjustmentTotal()); + // 调差单位缴纳明细 + BigDecimal insuranceNum = new BigDecimal(num); + insuranceNum = insuranceNum.add(adjustmentTo); + socialJson.replace(insuranceId, insuranceNum.toPlainString()); + insuranceAccountDetailPO.setSocialComJson(JSON.toJSONString(socialJson)); + // 调差单位合计 + BigDecimal comSum = new BigDecimal(insuranceAccountDetailPO.getComSum()); + comSum = comSum.add(adjustmentTo); + insuranceAccountDetailPO.setComSum(comSum.toPlainString()); + // 调差社保单位合计 + BigDecimal socialComSum = new BigDecimal(insuranceAccountDetailPO.getSocialComSum()); + socialComSum = socialComSum.add(adjustmentTo); + insuranceAccountDetailPO.setSocialComSum(socialComSum.toPlainString()); + // 调差社保合计 + BigDecimal socialSum = new BigDecimal(insuranceAccountDetailPO.getSocialSum()); + socialSum = socialSum.add(adjustmentTo); + insuranceAccountDetailPO.setSocialSum(socialSum.toPlainString()); + // 调差合计 + BigDecimal totalSum = new BigDecimal(insuranceAccountDetailPO.getTotal()); + totalSum = totalSum.add(adjustmentTo); + insuranceAccountDetailPO.setTotal(totalSum.toPlainString()); + //更新社保调差后的明细 + encryptUtil.encrypt(insuranceAccountDetailPO, InsuranceAccountDetailPO.class); + getInsuranceAccountDetailMapper().updateById(insuranceAccountDetailPO); + //新建调差记录 + InsuranceCompensationPO insuranceCompensationPO = new InsuranceCompensationPO(); + insuranceCompensationPO.setId(IdGenerator.generate()); + insuranceCompensationPO.setAdjustmentTotal(param.getAdjustmentTotal()); + insuranceCompensationPO.setAdjustTo(param.getAdjustTo()); + insuranceCompensationPO.setBillMonth(param.getBillMonth()); + insuranceCompensationPO.setCompanyTotal(param.getCompanyTotal()); + insuranceCompensationPO.setCreator(currentEmployeeId); + insuranceCompensationPO.setCategoryType(param.getCategoryType()); + insuranceCompensationPO.setCreateTime(new Date()); + insuranceCompensationPO.setDeleteType(DeleteTypeEnum.NOT_DELETED.getValue()); + insuranceCompensationPO.setCountryTotal(param.getCountryTotal()); + insuranceCompensationPO.setEmployeeId(insuranceAccountDetailPO.getEmployeeId()); + + insuranceCompensationPO.setPaymentOrganization(insuranceAccountDetailPO.getPaymentOrganization()); + insuranceCompensationPO.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY); + insuranceCompensationPO.setWelfareType(param.getWelfareType()); + insuranceCompensationPO.setUpdateTime(new Date()); + getInsuranceCompensationMapper().insert(insuranceCompensationPO); + + idList.add(insuranceCompensationPO.getId()); +// result.put(param.getOriginId(), insuranceCompensationPO.getId().toString()); + + } + } + } + } + //刷新bill_detail统计数据 + getSIAccountService(user).refreshBillBatch(list.get(0).getPaymentOrganization(), list.get(0).getBillMonth()); + if (errorList.size() == 0) { + result.put("data", "全部调差成功!"); + } else { + result.put("data", "存在调差失败项!"); + } + result.put("errorMessage", errorList); + result.put("successIds", idList); + return result; + } + + @Override + public String compensationConfigSave(List param) { + long currentEmployeeId = user.getUID(); + + SalaryAssert.notEmpty(param, SalaryI18nUtil.getI18nLabel(143746, "默认调差配置数据为空")); + // 清除历史默认配置 + getInsuranceCompensationConfigMapper().deleteByPayOrg(param.get(0).getPaymentOrganization()); + // 保存历史默认配置 + List configList = param.stream().map(config -> { + InsuranceAccountDetailPO insuranceAccountDetailPO = getInsuranceAccountDetailMapper().getById(config.getTarget()); + SalaryAssert.notNull(insuranceAccountDetailPO, SalaryI18nUtil.getI18nLabel(138849, "调差对象不存在")); + return InsuranceCompensationConfigPO.builder() + .id(IdGenerator.generate()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .employeeId(insuranceAccountDetailPO.getEmployeeId()) + .adjustTo(config.getAdjustTo()) + .createTime(new Date()) + .updateTime(new Date()) + .categoryType(config.getCategoryType()) + .paymentOrganization(config.getPaymentOrganization()) + .welfareType(config.getWelfareType()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .creator(currentEmployeeId).build(); + }).collect(Collectors.toList()); + configList.forEach(config -> getInsuranceCompensationConfigMapper().insert(config)); + + return "配置成功"; + } + + /** + * 社保调差撤回 + */ + @Override + public String compensationRevert(InsuranceCompensationDTO param) { + InsuranceCompensationPO insuranceCompensationPO = getInsuranceCompensationMapper().getById(param.getId()); + SalaryAssert.notNull(insuranceCompensationPO, SalaryI18nUtil.getI18nLabel(121112, "当前补差记录不存在")); + InsuranceAccountDetailPO insuranceAccountDetailPO = getInsuranceAccountDetailMapper().getOneByBpep(InsuranceAccountDetailPO.builder() + .billMonth(insuranceCompensationPO.getBillMonth()) + .paymentStatus(PaymentStatusEnum.COMMON.getValue()) + .employeeId(insuranceCompensationPO.getEmployeeId()) + .paymentOrganization(insuranceCompensationPO.getPaymentOrganization()) + .build()); + + SalaryAssert.notNull(insuranceAccountDetailPO, SalaryI18nUtil.getI18nLabel(121108, "补差对象不存在")); + encryptUtil.decrypt(insuranceAccountDetailPO, InsuranceAccountDetailPO.class); + if (StringUtils.isNotBlank(insuranceAccountDetailPO.getSocialComJson())) { + Map socialJson = JSON.parseObject(insuranceAccountDetailPO.getSocialComJson(), new HashMap().getClass()); + for (Map.Entry entry : socialJson.entrySet()) { + String insuranceId = entry.getKey(); + String num = entry.getValue(); + if (Objects.equals(String.valueOf(insuranceCompensationPO.getAdjustTo()), insuranceId)) { + BigDecimal adjustmentTo = new BigDecimal(insuranceCompensationPO.getAdjustmentTotal()); + //回退调差单位缴纳明细 + BigDecimal insuranceNum = new BigDecimal(num); + insuranceNum = insuranceNum.subtract(adjustmentTo); + socialJson.replace(insuranceId, insuranceNum.toPlainString()); + insuranceAccountDetailPO.setSocialComJson(JSON.toJSONString(socialJson)); + //回退调差单位合计 + BigDecimal comSum = new BigDecimal(insuranceAccountDetailPO.getComSum()); + comSum = comSum.subtract(adjustmentTo); + insuranceAccountDetailPO.setComSum(comSum.toPlainString()); + //回退调差社保单位合计 + BigDecimal socialComSum = new BigDecimal(insuranceAccountDetailPO.getSocialComSum()); + socialComSum = socialComSum.subtract(adjustmentTo); + insuranceAccountDetailPO.setSocialComSum(socialComSum.toPlainString()); + //回退调差社保合计 + BigDecimal socialSum = new BigDecimal(insuranceAccountDetailPO.getSocialSum()); + socialSum = socialSum.subtract(adjustmentTo); + insuranceAccountDetailPO.setSocialSum(socialSum.toPlainString()); + //回退调差合计 + BigDecimal totalSum = new BigDecimal(insuranceAccountDetailPO.getTotal()); + totalSum = totalSum.subtract(adjustmentTo); + insuranceAccountDetailPO.setTotal(totalSum.toPlainString()); + //更新社保调差后的明细 + encryptUtil.encrypt(insuranceAccountDetailPO, InsuranceAccountDetailPO.class); + getInsuranceAccountDetailMapper().updateById(insuranceAccountDetailPO); + //删除调差记录 + getInsuranceCompensationMapper().deleteById(param.getId()); + + } + } + //刷新bill_detail统计数据 + getSIAccountService(user).refreshBillBatch(param.getPaymentOrganization(), param.getBillMonth()); + + } + return "撤回成功"; + } + + @Override + public Map compensationList(String billMonth, Long paymentOrganization) { + + Map datas = new HashMap<>(); + + //入参判断 + if (paymentOrganization == null || StringUtils.isBlank(billMonth)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误")); + } + + //设置调差详情列表头 + List weaTableColumn = getColumnBuildService(user).buildCompensationColumns(); + WeaTable table = new WeaTable(); + table.setPageUID(UUID.randomUUID().toString()); + table.setColumns(weaTableColumn); + List columns = weaTableColumn.stream().map(v -> new Column(v.getText(), v.getColumn(), v.getColumn())).collect(Collectors.toList()); + + //处理调差数据 + List compensationDTOList = dealCompensationData(billMonth, paymentOrganization); + + datas.put("columns", columns); + datas.put("data", compensationDTOList); + + return datas; + } + + private List dealCompensationData(String billMonth, Long paymentOrganization) { + + //获取调差历史记录数据 + List compensationPOList = getInsuranceCompensationMapper().queryByBillMonthAndPayOrg(billMonth, paymentOrganization); + //获取调差配置数据 + List compensationConfigPOList = getInsuranceCompensationConfigMapper().queryByPayOrg(paymentOrganization); + + List compensationDTOList = new ArrayList<>(); + + List detailPOList = getInsuranceAccountDetailMapper().queryNormalListByBillMonth(billMonth, paymentOrganization); + Map detailPOMap = detailPOList.stream().collect(Collectors.toMap(InsuranceAccountDetailPO::getEmployeeId, Function.identity())); + + List allEmployees = getEmployMapper().listAll(); + Map usernameMap = SalaryEntityUtil.convert2Map(allEmployees, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getUsername); + + List allCategoryList = MapperProxyFactory.getProxy(ICategoryMapper.class).listAll(); + Map categoryNameMap = SalaryEntityUtil.convert2Map(allCategoryList, ICategoryPO::getId, ICategoryPO::getInsuranceName); + + boolean haveCompensation = compensationPOList != null && compensationPOList.size() > 0; + //存在调差历史记录时,输出记录数据 + if (haveCompensation) { + for (InsuranceCompensationPO po : compensationPOList) { + InsuranceCompensationDTO dto = new InsuranceCompensationDTO(); + BeanUtils.copyProperties(po, dto); + dto.setStatus(true); + //设置targetOptions + Map targetOptions = new HashMap<>(); + targetOptions.put("name", usernameMap.get(po.getEmployeeId())); + targetOptions.put("id", detailPOMap.get(po.getEmployeeId()).getId().toString()); + + dto.setTargetOptions(targetOptions); + + //设置categoryTypeOptions + List> categoryTypeOptions = new ArrayList<>(); + List categoryTypeList = Arrays.asList(po.getCategoryType().split(",")); + + for (String categoryType : categoryTypeList) { + Map categoryTypeMap = new HashMap<>(); + categoryTypeMap.put("id", categoryType); + categoryTypeMap.put("content", categoryNameMap.get(Long.valueOf(categoryType))); + categoryTypeOptions.add(categoryTypeMap); + } + dto.setCategoryTypeOptions(categoryTypeOptions); + + compensationDTOList.add(dto); + } + } + //不存在调差历史记录时,输出调差配置数据 + if (!haveCompensation && compensationConfigPOList.size() > 0) { + for (InsuranceCompensationConfigPO configPO : compensationConfigPOList) { + InsuranceCompensationDTO dto = new InsuranceCompensationDTO(); + BeanUtils.copyProperties(configPO, dto); + dto.setStatus(false); + //设置targetOptions + Map targetOptions = new HashMap<>(); + targetOptions.put("name", usernameMap.get(configPO.getEmployeeId())); + targetOptions.put("id", detailPOMap.get(configPO.getEmployeeId()).getId().toString()); + + dto.setTargetOptions(targetOptions); + + //设置categoryTypeOptions + List> categoryTypeOptions = new ArrayList<>(); + List categoryTypeList = Arrays.asList(configPO.getCategoryType().split(",")); + + for (String categoryType : categoryTypeList) { + Map categoryTypeMap = new HashMap<>(); + categoryTypeMap.put("id", categoryType); + categoryTypeMap.put("content", categoryNameMap.get(Long.valueOf(categoryType))); + categoryTypeOptions.add(categoryTypeMap); + } + dto.setCategoryTypeOptions(categoryTypeOptions); + + compensationDTOList.add(dto); + } + } + + return compensationDTOList; + } + +} diff --git a/src/com/engine/salary/service/impl/SIExportServiceImpl.java b/src/com/engine/salary/service/impl/SIExportServiceImpl.java index 504a69e8e..6e74a92ef 100644 --- a/src/com/engine/salary/service/impl/SIExportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIExportServiceImpl.java @@ -5,8 +5,7 @@ import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.SIAccountBiz; -import com.engine.salary.encrypt.siaccount.InsuranceAccountDetailPOEncrypt; -import com.engine.salary.encrypt.siexport.AccountExportPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.siaccount.dto.InsuranceAccountViewListDTO; import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; @@ -21,7 +20,6 @@ import com.engine.salary.enums.siaccount.ResourceFromEnum; import com.engine.salary.enums.sicategory.DataTypeEnum; import com.engine.salary.enums.sicategory.WelfareTypeEnum; import com.engine.salary.mapper.InsuranceExportMapper; -import com.engine.salary.mapper.SysTaxRateDetailMapper; import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper; import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; import com.engine.salary.mapper.sicategory.ICategoryMapper; @@ -60,6 +58,8 @@ public class SIExportServiceImpl extends Service implements SIExportService { BaseBean bs = new BaseBean(); + private EncryptUtil encryptUtil = new EncryptUtil(); + private SIAccountBiz siAccountBiz = new SIAccountBiz(); private SISchemeService getSISchemeService(User user) { @@ -93,7 +93,7 @@ public class SIExportServiceImpl extends Service implements SIExportService { @Override public XSSFWorkbook exportOverView(InsuranceExportParam queryParam) { List insuranceAccountDetailPOS = getInsuranceAccountDetailMapper().selectList(queryParam.getBillMonth(), StringUtils.isBlank(queryParam.getPaymentOrganization()) ? null : Long.valueOf(queryParam.getPaymentOrganization())); - InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(insuranceAccountDetailPOS); + encryptUtil.decryptList(insuranceAccountDetailPOS, InsuranceAccountDetailPO.class); //获取扣缴义务人信息 List paymentList =getTaxAgentMapper().listAll(); @@ -173,7 +173,7 @@ public class SIExportServiceImpl extends Service implements SIExportService { accountExportPOS = accountExportPOS.stream().filter(f -> canAccountIds.contains(f.getEmployeeId())).collect(Collectors.toList()); } - AccountExportPOEncrypt.decryptAccountExportPOList(accountExportPOS); + encryptUtil.decryptList(accountExportPOS, AccountExportPO.class); List columns = new ArrayList<>(); List> records = new ArrayList<>(); // if (Objects.equals(PaymentStatusEnum.COMMON.getValue(), paymentStatus)) { diff --git a/src/com/engine/salary/service/impl/SIImportServiceImpl.java b/src/com/engine/salary/service/impl/SIImportServiceImpl.java index aecdd2e8d..100d79152 100644 --- a/src/com/engine/salary/service/impl/SIImportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIImportServiceImpl.java @@ -6,9 +6,7 @@ import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.SIArchivesBiz; -import com.engine.salary.encrypt.siarchives.InsuranceArchivesFundSchemePOEncrypt; -import com.engine.salary.encrypt.siarchives.InsuranceArchivesOtherSchemePOEncrypt; -import com.engine.salary.encrypt.siarchives.InsuranceArchivesSocialSchemePOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; import com.engine.salary.entity.siarchives.po.InsuranceArchivesEmployeePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; @@ -48,6 +46,7 @@ import java.util.stream.Collectors; * @Version V1.0 **/ public class SIImportServiceImpl extends Service implements SIImportService { + private EncryptUtil encryptUtil = new EncryptUtil(); private SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); @@ -98,9 +97,9 @@ public class SIImportServiceImpl extends Service implements SIImportService { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); SocialSchemeMapper socialSchemeMapper = sqlSession.getMapper(SocialSchemeMapper.class); List page = new ArrayList<>(); - SalaryPageUtil.start(param.getCurrent(), param.getPageSize()); page = socialSchemeMapper.queryEmployeeList(param); - PageInfo pageInfo = new PageInfo<>(page, InsuranceArchivesEmployeePO.class); + PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), + page, InsuranceArchivesEmployeePO.class); int total = (int)pageInfo.getTotal(); param.setPageSize(total); param.setCurrent(1); @@ -231,19 +230,19 @@ public class SIImportServiceImpl extends Service implements SIImportService { List employeeIds = insuranceArchivesEmployeePOS.stream().map(InsuranceArchivesEmployeePO::getEmployeeId).collect(Collectors.toList()); Map socialSchemePOMap = new HashMap<>(); List socialSchemePOList = siArchivesBiz.getSocialByEmployeeIds(employeeIds); - InsuranceArchivesSocialSchemePOEncrypt.decryptList(socialSchemePOList); + encryptUtil.decryptList(socialSchemePOList, InsuranceArchivesSocialSchemePO.class); if (CollectionUtils.isNotEmpty(socialSchemePOList)) { socialSchemePOMap = socialSchemePOList.stream().collect(Collectors.toMap(InsuranceArchivesSocialSchemePO::getEmployeeId, Function.identity())); } List fundSchemePOList = siArchivesBiz.getFundByEmployeeIds(employeeIds); - InsuranceArchivesFundSchemePOEncrypt.encryptList(fundSchemePOList); + encryptUtil.encryptList(fundSchemePOList, InsuranceArchivesFundSchemePO.class); Map fundSchemePOMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(fundSchemePOList)) { fundSchemePOMap = fundSchemePOList.stream().collect(Collectors.toMap(InsuranceArchivesFundSchemePO::getEmployeeId, Function.identity())); } Map otherSchemePOMap = new HashMap<>(); List otherSchemePOList = siArchivesBiz.getOtherByEmployeeIds(employeeIds); - InsuranceArchivesOtherSchemePOEncrypt.decryptList(otherSchemePOList); + encryptUtil.decryptList(otherSchemePOList, InsuranceArchivesOtherSchemePO.class); if (CollectionUtils.isNotEmpty(otherSchemePOList)) { otherSchemePOMap = otherSchemePOList.stream().collect(Collectors.toMap(InsuranceArchivesOtherSchemePO::getEmployeeId, Function.identity())); } diff --git a/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java b/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java index 9b1b45956..3a6476889 100644 --- a/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIRecessionServiceImpl.java @@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.encrypt.siaccount.InsuranceAccountDetailPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.hrm.dto.HrmInfoDTO; import com.engine.salary.entity.hrm.param.HrmQueryParam; import com.engine.salary.entity.siaccount.param.InsuranceAccountDetailParam; @@ -16,22 +16,22 @@ import com.engine.salary.enums.siaccount.BillStatusEnum; import com.engine.salary.enums.siaccount.PaymentStatusEnum; import com.engine.salary.enums.siaccount.ProjectTypeEnum; import com.engine.salary.enums.sicategory.DeleteTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.EmployMapper; import com.engine.salary.mapper.siaccount.InsuranceAccountBatchMapper; import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper; import com.engine.salary.service.SIAccountService; import com.engine.salary.service.SIRecessionService; import com.engine.salary.service.TaxAgentService; +import com.engine.salary.util.SalaryAssert; import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Lists; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.collections4.CollectionUtils; -import com.engine.salary.exception.SalaryRunTimeException; -import com.engine.salary.util.SalaryI18nUtil; -import com.engine.salary.util.SalaryAssert; +import org.apache.commons.lang3.StringUtils; import weaver.hrm.User; import java.math.BigDecimal; @@ -45,6 +45,8 @@ import java.util.stream.Collectors; **/ public class SIRecessionServiceImpl extends Service implements SIRecessionService { + private EncryptUtil encryptUtil = new EncryptUtil(); + private InsuranceAccountDetailMapper getInsuranceAccountDetailMapper() { return SqlProxyHandle.getProxy(InsuranceAccountDetailMapper.class); } @@ -92,7 +94,7 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic ); }); - InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(detailPOS); + encryptUtil.decryptList(detailPOS, InsuranceAccountDetailPO.class); //处理数据 List finalDetailPOS = detailPOS; List finalRecessionDetails = new ArrayList<>(); @@ -106,7 +108,7 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic }); //退差数据入库 if (CollectionUtils.isNotEmpty(finalRecessionDetails)) { - InsuranceAccountDetailPOEncrypt.encryptInsuranceAccountDetailPOList(finalRecessionDetails); + encryptUtil.encryptList(finalRecessionDetails, InsuranceAccountDetailPO.class); //删除已有退差记录 finalRecessionDetails.forEach(getInsuranceAccountDetailMapper()::deleteRecessionData); @@ -357,7 +359,7 @@ public class SIRecessionServiceImpl extends Service implements SIRecessionServic // 分页 PageInfo page = new PageInfo<>(); - if (null == resultData) { + if (resultData.size() == 0) { return page; } page.setTotal(resultData.size()); diff --git a/src/com/engine/salary/service/impl/SIReportServiceImpl.java b/src/com/engine/salary/service/impl/SIReportServiceImpl.java index a89e68f27..84da7db00 100644 --- a/src/com/engine/salary/service/impl/SIReportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIReportServiceImpl.java @@ -1,7 +1,7 @@ package com.engine.salary.service.impl; import com.engine.core.impl.Service; -import com.engine.salary.encrypt.siaccount.InsuranceAccountDetailPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.siaccount.param.QueryAccountDetailParam; import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; import com.engine.salary.mapper.siaccount.SIAccountDetailMapper; @@ -15,17 +15,19 @@ import java.util.List; public class SIReportServiceImpl extends Service implements SIReportService { + private EncryptUtil encryptUtil = new EncryptUtil(); + private SIAccountDetailMapper getSIAccountDetailMapper(){ return MapperProxyFactory.getProxy(SIAccountDetailMapper.class); } @Override public PageInfo welfareList(QueryAccountDetailParam param) { - SalaryPageUtil.start(param.getCurrent(),param.getPageSize()); List insuranceAccountDetailPOS = getSIAccountDetailMapper().listSome(param); - PageInfo page = new PageInfo<>(insuranceAccountDetailPOS ,InsuranceAccountDetailPO.class); + PageInfo page = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), + insuranceAccountDetailPOS ,InsuranceAccountDetailPO.class); List list = page.getList(); - InsuranceAccountDetailPOEncrypt.decryptInsuranceAccountDetailPOList(list); + encryptUtil.decryptList(list, InsuranceAccountDetailPO.class); page.setList(list); return page; } diff --git a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java index e8c454de5..a19a164cf 100644 --- a/src/com/engine/salary/service/impl/SISchemeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SISchemeServiceImpl.java @@ -12,10 +12,7 @@ import com.engine.salary.biz.SISchemeBiz; import com.engine.salary.cmd.sischeme.*; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.encrypt.AESEncryptUtil; -import com.engine.salary.encrypt.siarchives.InsuranceArchivesFundSchemePOEncrypt; -import com.engine.salary.encrypt.siarchives.InsuranceArchivesOtherSchemePOEncrypt; -import com.engine.salary.encrypt.siarchives.InsuranceArchivesSocialSchemePOEncrypt; -import com.engine.salary.encrypt.sischeme.InsuranceSchemeDetailPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; import com.engine.salary.entity.siarchives.param.SIArchiveImportActionParam; @@ -42,7 +39,10 @@ import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; -import com.engine.salary.service.*; +import com.engine.salary.service.SIImportService; +import com.engine.salary.service.SISchemeService; +import com.engine.salary.service.SalaryEmployeeService; +import com.engine.salary.service.TaxAgentService; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.entity.vo.OrderRuleVO; import com.engine.salary.sys.service.SalarySysConfService; @@ -68,7 +68,6 @@ import weaver.file.ImageFileManager; import weaver.hrm.User; import java.io.InputStream; -import java.text.SimpleDateFormat; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -82,6 +81,8 @@ import static com.engine.salary.util.excel.ExcelSupport.EXCEL_TYPE_XLSX; * @Version V1.0 **/ public class SISchemeServiceImpl extends Service implements SISchemeService { + private EncryptUtil encryptUtil = new EncryptUtil(); + private SocialSchemeMapper getSocialSchemeMapper() { return MapperProxyFactory.getProxy(SocialSchemeMapper.class); } @@ -260,9 +261,9 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { end = employeeIds.size(); } List ids = employeeIds.subList(i, end); - socialList.addAll(InsuranceArchivesSocialSchemePOEncrypt.decryptList(siArchivesBiz.getSocialByEmployeeIds(ids))); - fundList.addAll(InsuranceArchivesFundSchemePOEncrypt.decryptList(siArchivesBiz.getFundByEmployeeIds(ids))); - otherList.addAll(InsuranceArchivesOtherSchemePOEncrypt.decryptList(siArchivesBiz.getOtherByEmployeeIds(ids))); + socialList.addAll(encryptUtil.decryptList(siArchivesBiz.getSocialByEmployeeIds(ids), InsuranceArchivesSocialSchemePO.class)); + fundList.addAll(encryptUtil.decryptList(siArchivesBiz.getFundByEmployeeIds(ids), InsuranceArchivesFundSchemePO.class)); + otherList.addAll(encryptUtil.decryptList(siArchivesBiz.getOtherByEmployeeIds(ids), InsuranceArchivesOtherSchemePO.class)); } Map socialSchemePOMap = SalaryEntityUtil.convert2Map(socialList, k -> k.getPaymentOrganization() + "-" + k.getEmployeeId()); Map fundSchemePOMap = SalaryEntityUtil.convert2Map(fundList, k -> k.getPaymentOrganization() + "-" + k.getEmployeeId()); @@ -410,7 +411,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { public Collection queryInsuranceSchemeDetailList(Long id) { List insuranceSchemeDetailPOS = MapperProxyFactory.getProxy(InsuranceSchemeDetailMapper.class).queryInsuranceSchemeDetailList(id, IsPaymentEnum.YES.getValue()); - return InsuranceSchemeDetailPOEncrypt.decryptList(insuranceSchemeDetailPOS); + return encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); } public String queryInsuranceName(Long id) { @@ -472,7 +473,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { List socialByEmployeeId = siArchivesBiz.getSocialByEmployeeIds(new ArrayList() {{ add(item.getEmployeeId()); }}); - InsuranceArchivesSocialSchemePOEncrypt.decryptList(socialByEmployeeId); + encryptUtil.decryptList(socialByEmployeeId, InsuranceArchivesSocialSchemePO.class); InsuranceArchivesSocialSchemePO socialItem = null; if (socialByEmployeeId.size() > 0) { socialItem = socialByEmployeeId.get(0); @@ -482,7 +483,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { List fundByEmployeeId = siArchivesBiz.getFundByEmployeeIds(new ArrayList() {{ add(item.getEmployeeId()); }}); - InsuranceArchivesFundSchemePOEncrypt.decryptList(fundByEmployeeId); + encryptUtil.decryptList(fundByEmployeeId, InsuranceArchivesFundSchemePO.class); if (fundByEmployeeId.size() > 0) { fundItem = fundByEmployeeId.get(0); @@ -492,7 +493,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { List otherByEmployeeId = siArchivesBiz.getOtherByEmployeeIds(new ArrayList() {{ add(item.getEmployeeId()); }}); - InsuranceArchivesOtherSchemePOEncrypt.decryptList(otherByEmployeeId); + encryptUtil.decryptList(otherByEmployeeId, InsuranceArchivesOtherSchemePO.class); if (otherByEmployeeId.size() > 0) { otherItem = otherByEmployeeId.get(0); } @@ -1080,7 +1081,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { insuranceArchivesSocialSchemePO.setEmployeeId(employeeId); insuranceArchivesSocialSchemePO.setUnderTake(UndertakerEnum.SCOPE_PERSON.getValue()); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().queryListBySchemeId(insuranceArchivesSocialSchemePO.getSocialSchemeId()); - InsuranceSchemeDetailPOEncrypt.decryptList(insuranceSchemeDetailPOS); + encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); if (CollectionUtils.isNotEmpty(insuranceSchemeDetailPOS)) { List insuranceIds = insuranceSchemeDetailPOS.stream().map(InsuranceSchemeDetailPO::getInsuranceId).collect(Collectors.toList()); HashMap socialPaymentBase = new HashMap<>(); @@ -1132,7 +1133,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { insuranceArchivesFundSchemePO.setEmployeeId(employeeId); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().queryListBySchemeId(insuranceArchivesFundSchemePO.getFundSchemeId()); - InsuranceSchemeDetailPOEncrypt.decryptList(insuranceSchemeDetailPOS); + encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); if (CollectionUtils.isNotEmpty(insuranceSchemeDetailPOS)) { List insuranceIds = insuranceSchemeDetailPOS.stream().map(InsuranceSchemeDetailPO::getInsuranceId).collect(Collectors.toList()); HashMap socialPaymentBase = new HashMap<>(); @@ -1180,7 +1181,7 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { insuranceArchivesOtherSchemePO.setUnderTake(UndertakerEnum.SCOPE_PERSON.getValue()); insuranceArchivesOtherSchemePO.setEmployeeId(employeeId); List insuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().queryListBySchemeId(insuranceArchivesOtherSchemePO.getOtherSchemeId()); - InsuranceSchemeDetailPOEncrypt.decryptList(insuranceSchemeDetailPOS); + encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class); if (CollectionUtils.isNotEmpty(insuranceSchemeDetailPOS)) { List insuranceIds = insuranceSchemeDetailPOS.stream().map(InsuranceSchemeDetailPO::getInsuranceId).collect(Collectors.toList()); HashMap socialPaymentBase = new HashMap<>(); @@ -1226,7 +1227,11 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { // List socialEmployeeIds = socialSchemePOS.stream().map(InsuranceArchivesSocialSchemePO::getEmployeeId).collect(Collectors.toList()); // List> socialEmployeeIdPartition = Lists.partition(socialEmployeeIds, 100); // socialEmployeeIdPartition.forEach(getSocialSchemeMapper()::batchDeleteByEmployeeIds); - List insuranceArchivesSocialSchemePOS = InsuranceArchivesSocialSchemePOEncrypt.encryptList(socialSchemePOS); + //去除员工id+个税扣缴义务人下重复的数据 + socialSchemePOS = socialSchemePOS.stream() + .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new)); + + List insuranceArchivesSocialSchemePOS = encryptUtil.encryptList(socialSchemePOS, InsuranceArchivesSocialSchemePO.class); List> partition = Lists.partition(insuranceArchivesSocialSchemePOS, 100); partition.forEach(getSocialSchemeMapper()::batchSave); } @@ -1239,7 +1244,11 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { // List fundEmployeeIds = fundSchemePOS.stream().map(InsuranceArchivesFundSchemePO::getEmployeeId).collect(Collectors.toList()); // List> fundEmployeeIdsPartition = Lists.partition(fundEmployeeIds, 100); // fundEmployeeIdsPartition.forEach(getFundSchemeMapper()::batchDeleteByEmployeeIds); - List insuranceArchivesFundSchemePOS = InsuranceArchivesFundSchemePOEncrypt.encryptList(fundSchemePOS); + //去除员工id+个税扣缴义务人下重复的数据 + fundSchemePOS = fundSchemePOS.stream() + .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new)); + + List insuranceArchivesFundSchemePOS = encryptUtil.encryptList(fundSchemePOS, InsuranceArchivesFundSchemePO.class); List> partition = Lists.partition(insuranceArchivesFundSchemePOS, 100); partition.forEach(getFundSchemeMapper()::batchSave); } @@ -1252,7 +1261,11 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { // List otherEmployeeIds = otherSchemePOS.stream().map(InsuranceArchivesOtherSchemePO::getEmployeeId).collect(Collectors.toList()); // List> otherEmployeeIdsPartition = Lists.partition(otherEmployeeIds, 100); // otherEmployeeIdsPartition.forEach(getOtherSchemeMapper()::batchDeleteByEmployeeIds); - List insuranceArchivesOtherSchemePOS = InsuranceArchivesOtherSchemePOEncrypt.encryptList(otherSchemePOS); + //去除员工id+个税扣缴义务人下重复的数据 + otherSchemePOS = otherSchemePOS.stream() + .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new)); + + List insuranceArchivesOtherSchemePOS = encryptUtil.encryptList(otherSchemePOS, InsuranceArchivesOtherSchemePO.class); List> partition = Lists.partition(insuranceArchivesOtherSchemePOS, 100); partition.forEach(getOtherSchemeMapper()::batchSave); } @@ -1260,6 +1273,9 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { List baseInfoPOS = insuranceArchivesAccountPOS.stream().filter(Objects::nonNull).map(InsuranceArchivesAccountPO::getBaseInfo).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(baseInfoPOS)) { // baseInfoPOS = baseInfoPOS.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(InsuranceArchivesBaseInfoPO::getEmployeeId))), ArrayList::new)); + //去除员工id+个税扣缴义务人下重复的数据 + baseInfoPOS = baseInfoPOS.stream() + .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new)); //根据人员id和个税扣缴义务人id删除对应档案 baseInfoPOS.forEach(getInsuranceBaseInfoMapper()::deleteByEmployeeIdAndPayOrg); //分批批量删除 @@ -1344,15 +1360,19 @@ public class SISchemeServiceImpl extends Service implements SISchemeService { Map welfareMap = welfareMap(); // 获取所有个税扣缴义务人的名称和id的map Map paymentNameIdMap; + //分权 - Boolean openDevolution = getTaxAgentService().isOpenDevolution(); +// Boolean openDevolution = getTaxAgentService().isOpenDevolution(); + // 流程处理,默认不开启分权 + Boolean openDevolution = false; if (openDevolution) { paymentNameIdMap = getTaxAgentService().listAllTaxAgentsAsAdmin((long) user.getUID()).stream().collect(Collectors.toMap(TaxAgentPO::getName, TaxAgentPO::getId)); } else { + paymentNameIdMap = getTaxAgentService().listAll().stream().collect(Collectors.toMap(TaxAgentPO::getName, TaxAgentPO::getId)); } - //获取所以个税扣缴义务人树型 + //获取所有个税扣缴义务人树型 List taxAgentManageRangeEmployeeTree = getTaxAgentService().listTaxAgentAndEmployeeTree(); // 获取所有人员信息 diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index 582fdbc3f..0016a4526 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -190,10 +190,10 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct queryParam.setOrderRule(orderRule); // 分页参数 - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); // 查询薪资核算人员 List salaryAcctEmployeePOS = getSalaryAcctEmployeeMapper().listPage(queryParam); - return new PageInfo<>(salaryAcctEmployeePOS); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + salaryAcctEmployeePOS, SalaryAcctEmployeePO.class); } @Override @@ -322,10 +322,9 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 查询合并计税的薪资核算人员 Set otherSalaryAcctRecordIds = SalaryEntityUtil.properties(otherSalaryAcctRecordPOS, SalaryAcctRecordPO::getId); // 分页参数 - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List salaryAcctEmployeePOS = getSalaryAcctEmployeeMapper().listPage4ConsolidatedTax(otherSalaryAcctRecordIds, queryParam); - PageInfo salaryAcctEmployeePOPageInfo = new PageInfo<>(salaryAcctEmployeePOS); - return salaryAcctEmployeePOPageInfo; + return SalaryPageUtil.buildPage(queryParam.getCurrent(),queryParam.getPageSize(), + salaryAcctEmployeePOS, SalaryAcctEmployeePO.class); } @Override diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 60395c948..23c2fda85 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -180,9 +180,9 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe } // 查询薪资核算记录 - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List salaryAcctRecordPOS = getSalaryAcctRecordMapper().listSome(po); - return new PageInfo<>(salaryAcctRecordPOS, SalaryAcctRecordPO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + salaryAcctRecordPOS, SalaryAcctRecordPO.class); } @Override diff --git a/src/com/engine/salary/service/impl/SalaryAcctReportServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctReportServiceImpl.java index e02c2aeac..c79f6d79d 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctReportServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctReportServiceImpl.java @@ -3,7 +3,7 @@ package com.engine.salary.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.encrypt.AESEncryptUtil; -import com.engine.salary.encrypt.report.SalaryAcctResultReportPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.report.po.SalaryAcctResultReportPO; import com.engine.salary.mapper.report.SalaryAcctResultReportMapper; import com.engine.salary.service.SalaryAcctReportService; @@ -16,6 +16,7 @@ import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import weaver.hrm.User; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; @@ -31,7 +32,7 @@ import static com.engine.salary.sys.constant.SalarySysConstant.DISPLAY_EMP_INFO_ * @version 1.0 **/ public class SalaryAcctReportServiceImpl extends Service implements SalaryAcctReportService { - + private EncryptUtil encryptUtil = new EncryptUtil(); private SalaryAcctResultReportMapper getSalaryAcctResultReportMapper() { return MapperProxyFactory.getProxy(SalaryAcctResultReportMapper.class); } @@ -77,7 +78,7 @@ public class SalaryAcctReportServiceImpl extends Service implements SalaryAcctRe SalarySysConfPO disPlay = getSalarySysConfService(user).getOneByCode(DISPLAY_EMP_INFO_REPORT); //默认不显示,关闭状态 if (disPlay == null || OpenEnum.OFF.getValue().equals(disPlay.getConfValue())) { - SalaryAcctResultReportPOEncrypt.encryptList(pos); + pos = encryptUtil.encryptList(new ArrayList<>(pos), SalaryAcctResultReportPO.class); } // List> partition = Lists.partition((List) pos, 100); // partition.forEach(getSalaryAcctResultReportMapper()::batchInsert); diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index e0171b7d8..9aad0efc9 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -4,7 +4,7 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.cache.SalaryCacheKey; import com.engine.salary.common.LocalDateRange; -import com.engine.salary.encrypt.salaryacct.SalaryAcctResultPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO; import com.engine.salary.entity.report.bo.SalaryAcctResultReportBO; @@ -71,6 +71,7 @@ import java.util.stream.Collectors; **/ @Slf4j public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctResultService { + private EncryptUtil encryptUtil = new EncryptUtil(); private SalaryAcctResultMapper getSalaryAcctResultMapper() { return MapperProxyFactory.getProxy(SalaryAcctResultMapper.class); @@ -164,14 +165,14 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe return Collections.emptyList(); } List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordIds(salaryAcctRecordIds).build()); - SalaryAcctResultPOEncrypt.decryptList(salaryAcctResultPOS); + encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); return salaryAcctResultPOS; } @Override public List listBySalaryAcctEmployeeId(Long salaryAcctEmployeeId) { List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctEmpId(salaryAcctEmployeeId).build()); - SalaryAcctResultPOEncrypt.decryptList(salaryAcctResultPOS); + encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); // 解密 return salaryAcctResultPOS; } @@ -183,7 +184,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe } List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctEmpIds(salaryAcctEmployeeIds).build()); // 解密 - SalaryAcctResultPOEncrypt.decryptList(salaryAcctResultPOS); + encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); return salaryAcctResultPOS; } @@ -193,7 +194,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe return Collections.emptyList(); } List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordIds(salaryAcctRecordIds).employeeIds(employeeIds).build()); - SalaryAcctResultPOEncrypt.decryptList(salaryAcctResultPOS); + encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); return salaryAcctResultPOS; } @@ -528,7 +529,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 保存薪资核算结果 if (CollectionUtils.isNotEmpty(salaryAcctResultPOS)) { // 加密 - SalaryAcctResultPOEncrypt.encryptList(salaryAcctResultPOS); + encryptUtil.encryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); List> partition = Lists.partition(salaryAcctResultPOS, 100); partition.forEach(getSalaryAcctResultMapper()::batchInsert); } @@ -563,7 +564,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe if (CollectionUtils.isNotEmpty(salaryAcctResultPOS)) { List list = (List) salaryAcctResultPOS; // 数据加密 - SalaryAcctResultPOEncrypt.encryptList(list); + encryptUtil.encryptList(list, SalaryAcctResultPO.class); List> partition = Lists.partition(list, 100); partition.forEach(getSalaryAcctResultMapper()::batchInsert); } @@ -776,7 +777,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe if (CollectionUtils.isEmpty(salaryAcctRecordIds)) { return Collections.emptyList(); } - return SalaryAcctResultPOEncrypt.decryptList(getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordIds(salaryAcctRecordIds).taxAgentIds(taxAgentIds).build())); + return encryptUtil.decryptList(getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordIds(salaryAcctRecordIds).taxAgentIds(taxAgentIds).build()), + SalaryAcctResultPO.class); } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index 4a0036c55..812613c04 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -16,6 +16,7 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; +import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; import com.engine.salary.entity.taxagent.po.TaxAgentEmployeePO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; @@ -78,6 +79,10 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + public TaxAgentManageRangeService getTaxAgentManageRangeService(User user) { + return ServiceUtil.getService(TaxAgentManageRangeServiceImpl.class, user); + } + private SalaryArchiveBiz salaryArchiveMapper = new SalaryArchiveBiz(); private EmployBiz employBiz = new EmployBiz(); private SalaryArchiveItemBiz salaryArchiveItemMapper = new SalaryArchiveItemBiz(); @@ -433,12 +438,8 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch SalaryArchiveExcelBO.initI18n(); String imageId = param.getImageId(); - // 列表类型 - String listType = param.getListType(); - // 导入类型 - String importType = param.getImportType(); - // 2.构建导入需要的数据 - SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(listType, importType); + // 构建导入需要的数据 + SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(param); InputStream fileInputStream = null; try { @@ -547,12 +548,9 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // 初始化国际化标签 SalaryArchiveExcelBO.initI18n(); - // 列表类型 - String listType = param.getListType(); - // 导入类型 - String importType = param.getImportType(); - // 2.构建导入需要的数据 - SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(listType, importType); + + // 构建导入需要的数据 + SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(SalaryArchiveImportHandleParam.builder().isProcess(true).listType(param.getListType()).importType(param.getImportType()).build()); int total = 0; @@ -654,16 +652,26 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch /** * 构建导入处理参数 * - * @param listType - * @param importType + * @param param * @return */ - private SalaryArchiveImportHandleParam buildImportHandleParam(String listType, String importType) { + private SalaryArchiveImportHandleParam buildImportHandleParam(SalaryArchiveImportHandleParam param) { + + // 列表类型 + String listType = param.getListType(); + // 导入类型 + String importType = param.getImportType(); + // 获取所有可被引用的薪资项目 List salaryItems = salaryArchiveItemService(user).getCanAdjustSalaryItems(); Collection salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); - // 获取所有个税扣缴义务人 - Collection taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree((long) user.getUID()); + Collection taxAgentList; + if (param.isProcess()) { + // 获取所有个税扣缴义务人 + taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree(); + } else { + taxAgentList = getTaxAgentService(user).listTaxAgentAndEmployeeTree((long) user.getUID()); + } // 待定薪列表 boolean isPendingList = listType.equals(SalaryArchiveListTypeEnum.PENDING.getValue()); @@ -695,6 +703,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // List hrmStatusList = hrmCommonHrmStatusService.list(tenantKey); return SalaryArchiveImportHandleParam.builder() + .isProcess(param.isProcess()) .listType(listType) .importType(importType) .currentEmployeeId((long) user.getUID()) @@ -736,6 +745,8 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch .salaryArchiveUpdates(Lists.newArrayList()) // 待删除薪资档案-薪资项目 .salaryArchiveItemDelSalaryItemIds(Lists.newArrayList()) + //人员范围 + .taxAgentRanges(Lists.newArrayList()) // 薪资账套 // .salarySobList(salaryArchiveService.getSalarySobList(employeeId, tenantKey)) // 待保存薪资档案-薪资账套 @@ -795,7 +806,10 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch List salaryArchiveUpdates = importHandleParam.getSalaryArchiveUpdates(); List salaryArchiveItemSaves = importHandleParam.getSalaryArchiveItemSaves(); List salaryArchiveItemDelSalaryItemIds = importHandleParam.getSalaryArchiveItemDelSalaryItemIds(); + List taxAgentRanges = importHandleParam.getTaxAgentRanges(); // List salaryArchiveSobSaves = importHandleParam.getSalaryArchiveSobSaves(); + + // 新增薪资档案 if (CollectionUtils.isNotEmpty(salaryArchiveSaves)) { // 去除已经存在的,避免重复 @@ -826,5 +840,11 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // if (CollectionUtils.isNotEmpty(salaryArchiveIds) && CollectionUtils.isNotEmpty(salaryArchiveSaves)) { // this.salaryArchiveSobService.saveBatchBySalaryArchiveIdsAndSaves(salaryArchiveIds, salaryArchiveSobSaves, message.getTenantKey()); // } + + + //新增人员范围(会自动生成人员档案) + if (CollectionUtils.isNotEmpty(taxAgentRanges)) { + taxAgentRanges.forEach(getTaxAgentManageRangeService(user)::save); + } } } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 9eccd455f..74d338094 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -169,7 +169,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // 2.待停薪自动处理 handleSuspendData(currentEmployeeId); // 3.增量数据处理 - handleChangeData(currentEmployeeId); +// handleChangeData(currentEmployeeId); Util_DataCache.setObjVal("salaryArchiveHandleable", "1"); } }.start(); @@ -284,10 +284,14 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe return; } // 当前可以管辖的人员 - Collection taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); - taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> taxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) { - return; + Collection taxAgentList = new ArrayList<>(); + if (currentEmployeeId != 1L) { + taxAgentList = getTaxAgentService(user).listAllTaxAgents(currentEmployeeId); + Collection finalTaxAgentList = taxAgentList; + taxAgentEmpChangeList = taxAgentEmpChangeList.stream().filter(f -> finalTaxAgentList.stream().anyMatch(e -> e.getId().equals(f.getTaxAgentId()))).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(taxAgentEmpChangeList)) { + return; + } } // 所有档案数据 List salaryArchiveList = getSalaryArchiveMapper().listAll(); @@ -466,6 +470,8 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe map.put("employeeStatus", e.getEmployeeStatus()); map.put("payStartDate", SalaryDateUtil.getFormatLocalDate(e.getPayStartDate())); map.put("payEndDate", SalaryDateUtil.getFormatLocalDate(e.getPayEndDate())); + map.put("companystartdate", e.getCompanystartdate()); + map.put("dismissdate", e.getDismissdate()); // 薪资项目动态 Optional> optionalItem = salaryArchiveItemData.stream().filter(f -> f.get("salaryArchiveId").toString().equals(e.getId().toString())).findFirst(); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java index 624958552..eede97198 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveTaxAgentServiceImpl.java @@ -60,10 +60,9 @@ public class SalaryArchiveTaxAgentServiceImpl extends Service implements SalaryA @Override public PageInfo taxAgentAdjustRecordListPage(TaxAgentAdjustRecordQueryParam queryParam) { - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List taxAgentAdjustRecordListDTOS = getSalaryArchiveTaxAgentMapper().taxAgentAdjustRecordList(queryParam); - PageInfo pageInfo = new PageInfo(taxAgentAdjustRecordListDTOS, TaxAgentAdjustRecordListDTO.class); - return pageInfo; + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + taxAgentAdjustRecordListDTOS, TaxAgentAdjustRecordListDTO.class); } @Override diff --git a/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java index e66639007..2a424ea92 100644 --- a/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryComparisonResultServiceImpl.java @@ -3,7 +3,7 @@ package com.engine.salary.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.encrypt.AESEncryptUtil; -import com.engine.salary.encrypt.salaryacct.ExcelAcctResultPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultBO; import com.engine.salary.entity.salaryacct.dto.SalaryComparisonResultListDTO; @@ -47,7 +47,7 @@ import java.util.stream.Collectors; * @version 1.0 **/ public class SalaryComparisonResultServiceImpl extends Service implements SalaryComparisonResultService { - + private EncryptUtil encryptUtil = new EncryptUtil(); private ExcelAcctResultMapper getExcelAcctResultMapper() { return MapperProxyFactory.getProxy(ExcelAcctResultMapper.class); @@ -101,7 +101,7 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary @Override public List listBySalaryAcctRecordId(Long salaryAcctRecordId) { List excelAcctResultPOS = getExcelAcctResultMapper().listSome(ExcelAcctResultPO.builder().salaryAcctRecordId(salaryAcctRecordId).build()); - return ExcelAcctResultPOEncrypt.decryptList(excelAcctResultPOS); + return encryptUtil.decryptList(excelAcctResultPOS, ExcelAcctResultPO.class); } @Override @@ -110,7 +110,7 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary return Collections.emptyList(); } List excelAcctResultPOS = getExcelAcctResultMapper().listSome(ExcelAcctResultPO.builder().salaryAcctEmpIds(salaryAcctEmployeeIds).build()); - return ExcelAcctResultPOEncrypt.decryptList(excelAcctResultPOS); + return encryptUtil.decryptList(excelAcctResultPOS, ExcelAcctResultPO.class); } @Override @@ -246,10 +246,10 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary @Override public void batchSave(Collection excelAcctResultPOS) { - ExcelAcctResultPOEncrypt.encryptList(excelAcctResultPOS); if (CollectionUtils.isEmpty(excelAcctResultPOS)) { return; } + excelAcctResultPOS = encryptUtil.encryptList(new ArrayList<>(excelAcctResultPOS), ExcelAcctResultPO.class); List> partition = Lists.partition((List) excelAcctResultPOS, 100); partition.forEach(getExcelAcctResultMapper()::batchInsert); } diff --git a/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java b/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java index 65cb918c8..a012a2f4d 100644 --- a/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java @@ -146,14 +146,19 @@ public class SalaryFormulaServiceImpl extends Service implements SalaryFormulaSe //将select因XSS过滤造成的异常字符转换回来 param.setFormula(param.getFormula().replaceAll("select", "select")); - param.setFormula(param.getFormula().replaceAll("SELECT", "select")); + param.setFormula(param.getFormula().replaceAll("SELECT", "SELECT")); param.setFormula(param.getFormula().replaceAll("join", "join")); - param.setFormula(param.getFormula().replaceAll("JOIN ", "join")); + param.setFormula(param.getFormula().replaceAll("JOIN", "JOIN")); param.setFormula(param.getFormula().replaceAll("and", "and")); + param.setFormula(param.getFormula().replaceAll("AND", "AND")); param.setFormula(param.getFormula().replaceAll("or", "or")); + param.setFormula(param.getFormula().replaceAll("OR", "OR")); param.setFormula(param.getFormula().replaceAll("in", "in")); + param.setFormula(param.getFormula().replaceAll("IN", "IN")); param.setFormula(param.getFormula().replaceAll("like", "like")); - param.setFormula(param.getFormula().replaceAll("LIKE ", "like")); + param.setFormula(param.getFormula().replaceAll("LIKE", "like")); + param.setFormula(param.getFormula().replaceAll("exists", "exists")); + param.setFormula(param.getFormula().replaceAll("EXISTS", "EXISTS")); } //试运行公式 diff --git a/src/com/engine/salary/service/impl/SalarySendRangeObjServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendRangeObjServiceImpl.java new file mode 100644 index 000000000..0bb50b5be --- /dev/null +++ b/src/com/engine/salary/service/impl/SalarySendRangeObjServiceImpl.java @@ -0,0 +1,106 @@ +package com.engine.salary.service.impl; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.hrm.service.RolesMembersService; +import com.engine.hrm.service.impl.RolesMembersServiceImpl; +import com.engine.salary.biz.SalarySendRangeObjBiz; +import com.engine.salary.entity.salaryBill.bo.SalarySendRangeBO; +import com.engine.salary.entity.salaryBill.dto.SalarySendInfoListDTO; +import com.engine.salary.entity.salaryBill.dto.SalarySendUserInfoDTO; +import com.engine.salary.entity.salaryBill.po.SalarySendRangeObj; +import com.engine.salary.enums.salarysend.SalarySendRangeTargetTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.service.SalarySendRangeObjService; +import com.engine.salary.service.SalarySendService; +import com.engine.salary.service.SalarySobService; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; + +public class SalarySendRangeObjServiceImpl extends Service implements SalarySendRangeObjService { + + private SalarySendService getSalarySendService() { + return ServiceUtil.getService(SalarySendServiceImpl.class, user); + } + + private RolesMembersService getRolesMembersService() { + return ServiceUtil.getService(RolesMembersServiceImpl.class, user); + } + + private SalarySobService getSalarySobService() { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private final SalarySendRangeObjBiz salarySendRangeObjBiz = new SalarySendRangeObjBiz(); + + @Override + public List listBySalarySendIdAndRangeIds(Long salarySendId, List rangeIds) { + if (salarySendId == null || CollectionUtils.isEmpty(rangeIds)) { + return Collections.emptyList(); + } + return salarySendRangeObjBiz.applyMapper(mapper -> + mapper.listBySalarySendIdAndRangeIds(salarySendId, rangeIds, DEFAULT_TENANT_KEY) + ); + } + + @Override + public void deleteBySalarySendIds(Collection salarySendIds) { + salarySendRangeObjBiz.runMapper(mapper -> mapper.deleteBySalarySendIds(salarySendIds)); + } + + @Override + public void replaceAllByRangeIds(Long rangeIds, List rangeObjs) { + for (SalarySendRangeObj rangeObj : rangeObjs) { + SalarySendRangeTargetTypeEnum targetEnum = SalarySendRangeTargetTypeEnum.fromValue(rangeObj.getTargetType()); + if (targetEnum == null) { + throw new SalaryRunTimeException("传入范围类型非法"); + } + if (rangeObj.getTargetType().equals(SalarySendRangeTargetTypeEnum.ALL.getValue())) { + rangeObj.setTargetId(0L); + } + } + salarySendRangeObjBiz.replaceAllByRangeId(rangeIds, rangeObjs); + } + + @Override + public List getSendInfoIdsBySalarySendIdAndRangeIds(Long salarySendId, List rangeIds) { + // 获取范围 + List rangeList = + salarySendRangeObjBiz.applyMapper(mapper -> mapper.listBySalarySendIdAndRangeIds(salarySendId, rangeIds, DEFAULT_TENANT_KEY)); + + // 初始化范围操作类 + SalarySendRangeBO rangeBO = new SalarySendRangeBO(); + for (SalarySendRangeObj rangeObj : rangeList) { + rangeBO.putNew(rangeObj); + } + // 获取当前发放单人员详情 + List sendInfoList = getSalarySendService().salarySendInfoList(salarySendId); + // 获取全部人员id + List employeeIds = sendInfoList.stream().map(SalarySendInfoListDTO::getEmployeeId) + .distinct().collect(Collectors.toList()); + // 查找人员的多维度关联id + List userInfos = + salarySendRangeObjBiz.getSalarySendUserInfoDTOs(employeeIds); + // 筛选在范围中的人员id + Set empIds = userInfos.stream() + .filter(rangeBO::judgeInRange) + .map(SalarySendUserInfoDTO::getResourceId) + .distinct().collect(Collectors.toSet()); + // 返回发放详情的id + return sendInfoList.stream().filter(s -> empIds.contains(s.getEmployeeId())) + .map(SalarySendInfoListDTO::getId) + .collect(Collectors.toList()); + } + + @Override + public void deleteBySalarySendRangeIds(List salarySendRangeIds) { + salarySendRangeObjBiz.runMapper(mapper -> mapper.deleteByRangeIds(salarySendRangeIds, DEFAULT_TENANT_KEY)); + } +} diff --git a/src/com/engine/salary/service/impl/SalarySendRangeServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendRangeServiceImpl.java new file mode 100644 index 000000000..bf15ff818 --- /dev/null +++ b/src/com/engine/salary/service/impl/SalarySendRangeServiceImpl.java @@ -0,0 +1,195 @@ +package com.engine.salary.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.biz.EmployBiz; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.hrm.DeptInfo; +import com.engine.salary.entity.hrm.PositionInfo; +import com.engine.salary.entity.hrm.SubCompanyInfo; +import com.engine.salary.entity.salaryBill.dto.SalarySendRangeListDTO; +import com.engine.salary.entity.salaryBill.dto.SalarySendRangeObjDTO; +import com.engine.salary.entity.salaryBill.param.SalarySendRangeQueryParam; +import com.engine.salary.entity.salaryBill.param.SalarySendRangeSaveParam; +import com.engine.salary.entity.salaryBill.po.SalarySendRangeObj; +import com.engine.salary.entity.salaryBill.po.SalarySendRangePO; +import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum; +import com.engine.salary.enums.salarysend.SalarySendRangeTargetTypeEnum; +import com.engine.salary.enums.salarysend.SalarySendRangeTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.salarybill.SalarySendRangeMapper; +import com.engine.salary.service.SalaryEmployeeService; +import com.engine.salary.service.SalarySendRangeObjService; +import com.engine.salary.service.SalarySendRangeService; +import com.engine.salary.service.TaxAgentService; +import com.engine.salary.util.db.MapperProxyFactory; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; +import org.apache.ibatis.session.SqlSession; +import weaver.conn.mybatis.MyBatisFactory; + +import java.util.*; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.stream.Collectors; + +import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; + +public class SalarySendRangeServiceImpl extends Service implements SalarySendRangeService { + private SalaryEmployeeService getSalaryEmployeeService() { + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } + + private TaxAgentService getTaxAgentService() { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + private EmployBiz employBiz = new EmployBiz(); + + private R applyMapper(Function mapper) { + try (SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession()) { + final SalarySendRangeMapper salarySendRangeMapper = sqlSession.getMapper(SalarySendRangeMapper.class); + R apply = mapper.apply(salarySendRangeMapper); + sqlSession.commit(); + return apply; + } + } + + private void runMapper(Consumer mapper) { + try (SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession()) { + final SalarySendRangeMapper salarySendRangeMapper = sqlSession.getMapper(SalarySendRangeMapper.class); + mapper.accept(salarySendRangeMapper); + sqlSession.commit(); + } + } + + private SalarySendRangeObjService getSalarySendRangeObjService() { + return ServiceUtil.getService(SalarySendRangeObjServiceImpl.class, user); + } + + @Override + public void save(SalarySendRangeSaveParam param) { + if (user == null) { + throw new SalaryRunTimeException("您没有此操作的权限"); + } + SalarySendRangeSaveParam.checkParam(param, (long) user.getUID(), DEFAULT_TENANT_KEY); + SalarySendRangePO salarySendRangePO = param.toSalarySendRangePO(user); + + // 如果传入id, 则做查询后更新 + if (salarySendRangePO.getId() != null) { + SalarySendRangePO oldInfo = applyMapper(mapper -> mapper.selectByPrimaryKey(salarySendRangePO.getId())); + if (oldInfo == null) { + throw new SalaryRunTimeException("传入发放范围不存在"); + } + runMapper(mapper -> mapper.updateByPrimaryKeySelective(salarySendRangePO)); + } else { + runMapper(mapper -> mapper.insertSelective(salarySendRangePO)); + } + param.setSalarySendRangeId(salarySendRangePO.getId()); + + List rangeObjs = param.toSalarySendRangeObj(user); + getSalarySendRangeObjService().replaceAllByRangeIds(salarySendRangePO.getId(), rangeObjs); + } + + @Override + public PageInfo listPage(SalarySendRangeQueryParam queryParam) { + SalarySendRangeMapper mapper = MapperProxyFactory.getProxy(SalarySendRangeMapper.class); + List listDTOs = mapper.selectByParam(queryParam); + PageInfo page = new PageInfo<>(listDTOs, SalarySendRangeListDTO.class); + listDTOs = listDTOs.stream().map(s -> { + List rangeObjs = getSalarySendRangeObjService().listBySalarySendIdAndRangeIds(queryParam.getSalarySendId(), + Collections.singletonList(s.getId())); + Map> groupedMap = rangeObjs.stream() + .map(rangeObj -> { + SalarySendRangeTargetTypeEnum typeEnum = SalarySendRangeTargetTypeEnum.fromValue(rangeObj.getTargetType()); + if (typeEnum == null) { + return null; + } + String targetName = null; + switch (typeEnum) { + case USER: + DataCollectionEmployee employee = + getSalaryEmployeeService().getEmployeeById(rangeObj.getTargetId()); + targetName = Optional.ofNullable(employee) + .map(DataCollectionEmployee::getUsername) + .orElse(null); + break; + case DEPT: + targetName = employBiz.getDeptInfoList(Collections.singletonList(rangeObj.getTargetId())) + .stream().findFirst() + .map(DeptInfo::getName).orElse(null); + break; + case SUB_COMPANY: + targetName = employBiz.getSubCompanyInfoList(Collections.singletonList(rangeObj.getTargetId())) + .stream().findFirst() + .map(SubCompanyInfo::getName).orElse(null); + break; + case POSITION: + targetName = employBiz.listPositionInfo(Collections.singletonList(rangeObj.getTargetId())) + .stream().findFirst() + .map(PositionInfo::getName).orElse(null); + break; +// case TAX_AGENT: +// targetName = Optional.ofNullable(getTaxAgentService().getById(rangeObj.getTargetId())) +// .map(TaxAgentPO::getName).orElse(null); +// break; + } + return SalarySendRangeObjDTO.builder() + .targetType(rangeObj.getTargetType()) + .targetTypeName(typeEnum.getDefaultLabel()) + .targetName(targetName) + .rangeType(rangeObj.getRangeType()) + .targetId(rangeObj.getTargetId()) + .build(); + }).filter(Objects::nonNull) + .collect(Collectors.groupingBy(SalarySendRangeObjDTO::getRangeType)); + //如果有查询,则做筛选 + if (StrUtil.isNotEmpty(queryParam.getTargetName())) { + boolean nameLike = false; + for (List value : groupedMap.values()) { + nameLike |= value.stream() + .anyMatch(item -> Optional.ofNullable(item.getTargetName()).orElse("") + .contains(queryParam.getTargetName())); + } + if (!nameLike) { + return null; + } + } + s.setIncludeObj(groupedMap.getOrDefault(SalarySendRangeTypeEnum.INCLUDE_OBJ.getValue(), Collections.emptyList())); + s.setExcludeObj(groupedMap.getOrDefault(SalarySendRangeTypeEnum.EXCLUDE_OBJ.getValue(), Collections.emptyList())); + return s; + }).filter(Objects::nonNull) + .collect(Collectors.toList()); + page.setTotal(listDTOs.size()); + List list = SalaryPageUtil.subList(queryParam.getCurrent(), queryParam.getPageSize(), listDTOs); + page.setList(list); + return page; + } + + @Override + public void deleteBySalarySendIds(Collection sendIds) { + + } + + @Override + public void deleteByIds(List sendRangeIds) { + runMapper(mapper -> { + for (Long sendRangeId : sendRangeIds) { + mapper.deleteByPrimaryKey(sendRangeId); + } + }); + getSalarySendRangeObjService().deleteBySalarySendRangeIds(sendRangeIds); + } + + @Override + public List getSendInfoIdsBySendId(Long sendId, List sendRangeIds, SalarySendGrantTypeEnum grantType) { + List rangeIdList = + applyMapper(mapper -> mapper.selectIdsBySendIdAndGrantType(sendId, grantType.getValue())); + + rangeIdList = rangeIdList.stream() + .filter(sendRangeIds::contains) + .collect(Collectors.toList()); + return getSalarySendRangeObjService().getSendInfoIdsBySalarySendIdAndRangeIds(sendId, rangeIdList); + } +} diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index daa8277d7..05432a504 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -12,7 +12,7 @@ import com.engine.salary.biz.SalarySendBiz; import com.engine.salary.biz.SalarySendInfoBiz; import com.engine.salary.constant.SalaryItemConstant; import com.engine.salary.constant.SalaryTemplateSalaryItemSetGroupConstant; -import com.engine.salary.encrypt.salaryacct.SalaryAcctResultPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryBill.dto.*; import com.engine.salary.entity.salaryBill.param.*; @@ -32,6 +32,7 @@ import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveFieldTypeEnum; import com.engine.salary.enums.salarybill.SalarySendStatusEnum; import com.engine.salary.enums.salarybill.SalaryTemplateReplenishRuleEnum; +import com.engine.salary.enums.salarysend.SalarySendGrantTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper; @@ -46,6 +47,7 @@ import com.engine.salary.util.JsonUtil; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.excel.ExcelUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -77,9 +79,15 @@ public class SalarySendServiceImpl extends Service implements SalarySendService private static final Logger log = LoggerFactory.getLogger(SalarySendServiceImpl.class); + private EncryptUtil encryptUtil = new EncryptUtil(); + private SalarySendBiz mapper = new SalarySendBiz(); private SalarySendInfoBiz salarySendInfoMapper = new SalarySendInfoBiz(); + private SalarySendRangeService getSalarySendRangeService(User user) { + return ServiceUtil.getService(SalarySendRangeServiceImpl.class, user); + } + private SalaryTemplateService getSalaryTemplateService(User user) { return ServiceUtil.getService(SalaryTemplateServiceImpl.class, user); @@ -477,7 +485,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService acctPo.setSalaryAcctRecordId(salarySendInfo.getSalaryAcctRecordId()); acctPo.setEmployeeId(currentEmployeeId); List salaryAcctResultPOS = getSalaryAcctResultMapper().listSome(acctPo); - SalaryAcctResultPOEncrypt.decryptList(salaryAcctResultPOS); + encryptUtil.decryptList(salaryAcctResultPOS, SalaryAcctResultPO.class); List> salaryAcctResultS = salaryAcctResultPOS.stream().map(m -> { Map map = new LinkedHashMap<>(); map.put("salaryItemId", m.getSalaryItemId()); @@ -553,10 +561,14 @@ public class SalarySendServiceImpl extends Service implements SalarySendService OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List page = salarySendInfoMapper.list(queryParam); - PageInfo result = new PageInfo<>(page, SalarySendInfoListDTO.class); - return result; + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + page, SalarySendInfoListDTO.class); + } + + @Override + public List salarySendInfoList(Long salarySendId) { + return salarySendInfoMapper.list(SalarySendInfoQueryParam.builder().salarySendId(salarySendId).build()); } @Override @@ -588,10 +600,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService return new PageInfo<>(); } } - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); - List list = salarySendInfoMapper.detailList(queryParam, otherSalaryAcctRecordIds); - PageInfo pageInfo = new PageInfo<>(list, SalarySendDetailListDTO.class); - return pageInfo; + List list = MapperProxyFactory.getProxy(SalarySendInfoMapper.class).detailList(queryParam, otherSalaryAcctRecordIds); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, SalarySendDetailListDTO.class); } /** @@ -711,8 +722,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService SalaryAcctResultPO po = new SalaryAcctResultPO(); po.setDeleteType(0); po.setSalaryAcctRecordId(salaryAccountingId); + po.setEmployeeIds(list.stream().map(SalarySendDetailListDTO::getEmployeeId).collect(Collectors.toList())); List salaryAccountingResults = getSalaryAcctResultMapper().listSome(po); - SalaryAcctResultPOEncrypt.decryptList(salaryAccountingResults); + encryptUtil.decryptList(salaryAccountingResults, SalaryAcctResultPO.class); // 动态列 list.forEach(e -> { Map map = new LinkedHashMap<>(); @@ -776,6 +788,15 @@ public class SalarySendServiceImpl extends Service implements SalarySendService Long salarySendId = param.getSalarySendId(); Collection ids = param.getIds(); + if (param.getSalarySendRangeIds() != null) { + //如果传了范围id,则使用范围id发放 + ids = getSalarySendRangeService(user) + .getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.GRANT); + if (ids.isEmpty()) {// 由于查出来是空的,会导致全部发放,在此进行拦截 + throw new SalaryRunTimeException("工资发放范围内没有匹配员工"); + } + } + SalarySendPO salarySend = mapper.getById(salarySendId); // 已经冻结不能操作 if (Objects.equals(salarySend.getSendStatus() , NumberUtils.INTEGER_ONE)) { @@ -1039,6 +1060,15 @@ public class SalarySendServiceImpl extends Service implements SalarySendService Long salarySendId = param.getSalarySendId(); Collection ids = param.getIds(); + if (param.getSalarySendRangeIds() != null) { + //如果传了范围id,则使用范围id撤回 + ids = getSalarySendRangeService(user) + .getSendInfoIdsBySendId(salarySendId, param.getSalarySendRangeIds(), SalarySendGrantTypeEnum.WITHDRAW); + if (ids.isEmpty()) {// 由于查出来是空的,会导致全部发放,在此进行拦截 + throw new SalaryRunTimeException("工资撤回范围内没有匹配的员工"); + } + } + SalarySendPO salarySend = mapper.getById(salarySendId); if (salarySend == null) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100512, "工资单发放不存在")); diff --git a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java index f3ea9681d..f60dc2cd2 100644 --- a/src/com/engine/salary/service/impl/SalarySobServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobServiceImpl.java @@ -196,9 +196,9 @@ public class SalarySobServiceImpl extends Service implements SalarySobService { page.setList(subSalarySobs); return page; } else { - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List salarySobPOS = salarySobMapper.listSome(build); - return new PageInfo<>(salarySobPOS, SalarySobPO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + salarySobPOS, SalarySobPO.class); } } diff --git a/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java b/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java index df9b604be..18ea0cf0c 100644 --- a/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/SpecialAddDeductionServiceImpl.java @@ -5,11 +5,14 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.EmployBiz; import com.engine.salary.biz.SpecialAddDeductionBiz; -import com.engine.salary.encrypt.datacollection.SpecialAddDeductionEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.dto.SpecialAddDeductionListDTO; import com.engine.salary.entity.datacollection.dto.SpecialAddDeductionRecordDTO; -import com.engine.salary.entity.datacollection.param.*; +import com.engine.salary.entity.datacollection.param.SpecialAddDeductionImportParam; +import com.engine.salary.entity.datacollection.param.SpecialAddDeductionParam; +import com.engine.salary.entity.datacollection.param.SpecialAddDeductionQueryParam; +import com.engine.salary.entity.datacollection.param.SpecialAddDeductionRecordDeleteParam; import com.engine.salary.entity.datacollection.po.SpecialAddDeductionPO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeTaxAgentDTO; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; @@ -52,6 +55,7 @@ import java.util.stream.Collectors; import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; public class SpecialAddDeductionServiceImpl extends Service implements SpecialAddDeductionService { + private EncryptUtil encryptUtil = new EncryptUtil(); private SpecialAddDeductionBiz getSpecialAddDeductionBiz() { return new SpecialAddDeductionBiz(); @@ -99,10 +103,11 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd if (needAuth) { putQueryRange(queryParam); } - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getSpecialAddDeductionMapper().listByParam(queryParam); - SpecialAddDeductionEncrypt.decrypt(list); - return new PageInfo<>(list, SpecialAddDeductionListDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, SpecialAddDeductionListDTO.class); + encryptUtil.decryptList(page.getList(), SpecialAddDeductionListDTO.class); + return page; } @Override @@ -113,11 +118,11 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd if (needAuth) { putQueryRange(queryParam); } - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = getSpecialAddDeductionMapper().listDtoByParam(queryParam); - SpecialAddDeductionEncrypt.decrypt(list); - - return new PageInfo<>(list, SpecialAddDeductionRecordDTO.class); + PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, SpecialAddDeductionRecordDTO.class); + encryptUtil.decryptList(page.getList(), SpecialAddDeductionRecordDTO.class); + return page; } private void putQueryRange(SpecialAddDeductionQueryParam queryParam) { @@ -439,7 +444,7 @@ public class SpecialAddDeductionServiceImpl extends Service implements SpecialAd SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); //查询详细信息 List list = getSpecialAddDeductionBiz().listDTOByParam(param); - SpecialAddDeductionEncrypt.decrypt(list); + encryptUtil.decryptList(list, SpecialAddDeductionRecordDTO.class); final List> dataRowList = Optional.ofNullable(list) .map(List::stream) .map(operatorStream -> operatorStream.map(dto -> { diff --git a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java index f7d8ed802..4e9483bf8 100644 --- a/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentManageRangeServiceImpl.java @@ -20,6 +20,7 @@ import com.engine.salary.enums.taxagent.TaxAgentRangeTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.datacollection.EmployMapper; import com.engine.salary.mapper.taxagent.TaxAgentManageRangeMapper; +import com.engine.salary.service.SalaryArchiveService; import com.engine.salary.service.TaxAgentEmpService; import com.engine.salary.service.TaxAgentManageRangeService; import com.engine.salary.service.TaxAgentService; @@ -68,6 +69,10 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM return ServiceUtil.getService(TaxAgentEmpServiceImpl.class, user); } + private SalaryArchiveService getSalaryArchiveService(User user) { + return ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); + } + private EmployMapper getEmployMapper() { return MapperProxyFactory.getProxy(EmployMapper.class); } @@ -123,9 +128,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM // 需要排除的人员范围 Set excludeEmployeeIds = SalaryEntityUtil.properties(excludeSalaryEmployees, DataCollectionEmployee::getEmployeeId); // 过滤人员 - includeSalaryEmployees = includeSalaryEmployees.stream() - .filter(salaryEmployee -> !excludeEmployeeIds.contains(salaryEmployee.getEmployeeId())) - .collect(Collectors.toList()); + includeSalaryEmployees = includeSalaryEmployees.stream().filter(salaryEmployee -> !excludeEmployeeIds.contains(salaryEmployee.getEmployeeId())).collect(Collectors.toList()); } return includeSalaryEmployees; } @@ -142,32 +145,27 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM } List salaryEmployeeList = Lists.newArrayList(); for (TaxAgentManageRangePO manageRange : taxAgentManageRanges) { - salaryEmployeeList.addAll(salaryEmployees.stream() - .filter(salaryEmployee -> { - if (StringUtils.isEmpty(manageRange.getEmployeeStatus()) || !manageRange.getEmployeeStatus().contains("\"" + salaryEmployee.getStatus() + "\"")) { - return false; - } - if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.ALL.getValue())) { - return true; - } - if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.EMPLOYEE.getValue()) - && Objects.equals(manageRange.getTargetId(), salaryEmployee.getEmployeeId())) { - return true; - } - if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.DEPT.getValue()) - && Objects.equals(manageRange.getTargetId(), salaryEmployee.getDepartmentId())) { - return true; - } - if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.SUBCOMPANY.getValue()) - && Objects.equals(manageRange.getTargetId(), salaryEmployee.getSubcompanyid())) { - return true; - } - if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.POSITION.getValue()) - && Objects.equals(manageRange.getTargetId(), salaryEmployee.getJobtitleId())) { - return true; - } - return false; - }).collect(Collectors.toList())); + salaryEmployeeList.addAll(salaryEmployees.stream().filter(salaryEmployee -> { + if (StringUtils.isEmpty(manageRange.getEmployeeStatus()) || !manageRange.getEmployeeStatus().contains("\"" + salaryEmployee.getStatus() + "\"")) { + return false; + } + if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.ALL.getValue())) { + return true; + } + if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.EMPLOYEE.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getEmployeeId())) { + return true; + } + if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.DEPT.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getDepartmentId())) { + return true; + } + if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.SUBCOMPANY.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getSubcompanyid())) { + return true; + } + if (Objects.equals(manageRange.getTargetType(), TargetTypeEnum.POSITION.getValue()) && Objects.equals(manageRange.getTargetId(), salaryEmployee.getJobtitleId())) { + return true; + } + return false; + }).collect(Collectors.toList())); } // 去重 salaryEmployeeList = salaryEmployeeList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DataCollectionEmployee::getEmployeeId))), ArrayList::new)); @@ -213,30 +211,18 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM private PageInfo listPageByParamAndIncludeType(List taxAgentManageRanges, TaxAgentManageRangeQueryParam queryParam, Integer includeType) { // 查询人员信息 - List employeeIds = taxAgentManageRanges.stream() - .filter(e -> Objects.equals(e.getTargetType(), TargetTypeEnum.EMPLOYEE.getValue())) - .map(TaxAgentManageRangePO::getTargetId) - .collect(Collectors.toList()); + List employeeIds = taxAgentManageRanges.stream().filter(e -> Objects.equals(e.getTargetType(), TargetTypeEnum.EMPLOYEE.getValue())).map(TaxAgentManageRangePO::getTargetId).collect(Collectors.toList()); // List employeeComInfos = comInfoCache.getCacheList(HrmEmployeeComInfo.class, employeeIds); List employeeComInfos = employBiz.getEmployeeByIdsAll(employeeIds); // 查询部门信息 - List departmentIds = taxAgentManageRanges.stream() - .filter(e -> Objects.equals(e.getTargetType(), TargetTypeEnum.DEPT.getValue())) - .map(TaxAgentManageRangePO::getTargetId) - .collect(Collectors.toList()); + List departmentIds = taxAgentManageRanges.stream().filter(e -> Objects.equals(e.getTargetType(), TargetTypeEnum.DEPT.getValue())).map(TaxAgentManageRangePO::getTargetId).collect(Collectors.toList()); List departmentComInfos = employBiz.getDeptInfoList(departmentIds); // 查询分部信息 - List subDepartmentIds = taxAgentManageRanges.stream() - .filter(e -> Objects.equals(e.getTargetType(), TargetTypeEnum.SUBCOMPANY.getValue())) - .map(TaxAgentManageRangePO::getTargetId) - .collect(Collectors.toList()); + List subDepartmentIds = taxAgentManageRanges.stream().filter(e -> Objects.equals(e.getTargetType(), TargetTypeEnum.SUBCOMPANY.getValue())).map(TaxAgentManageRangePO::getTargetId).collect(Collectors.toList()); List subDepartmentComInfos = employBiz.getSubCompanyInfoList(subDepartmentIds); // 查询岗位信息 - List positionIds = taxAgentManageRanges.stream() - .filter(e -> Objects.equals(e.getTargetType(), TargetTypeEnum.POSITION.getValue())) - .map(TaxAgentManageRangePO::getTargetId) - .collect(Collectors.toList()); + List positionIds = taxAgentManageRanges.stream().filter(e -> Objects.equals(e.getTargetType(), TargetTypeEnum.POSITION.getValue())).map(TaxAgentManageRangePO::getTargetId).collect(Collectors.toList()); List positionComInfos = employBiz.listPositionInfo(positionIds); // 分页参数 PageInfo dtoPage = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), TaxAgentManageRangeListDTO.class); @@ -247,9 +233,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM List taxAgentManageRangeList = TaxAgentBO.convert2ListDTO(taxAgentManageRanges, employeeComInfos, departmentComInfos, subDepartmentComInfos, positionComInfos, hrmStatusList); // 根据对象名称过滤 if (StringUtils.isNotEmpty(queryParam.getTargetName())) { - taxAgentManageRangeList = taxAgentManageRangeList.stream() - .filter(f -> f.getTargetName().contains(queryParam.getTargetName())) - .collect(Collectors.toList()); + taxAgentManageRangeList = taxAgentManageRangeList.stream().filter(f -> f.getTargetName().contains(queryParam.getTargetName())).collect(Collectors.toList()); } // 填充总数和当页数据 dtoPage.setTotal(taxAgentManageRangeList.size()); @@ -310,9 +294,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM allRanges.addAll(result.getNeedInsertTaxAgentManageRanges()); allRanges.addAll(result.getNeedUpdateTaxAgentManageRanges()); // 去重 - allRanges = allRanges.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>( - Comparator.comparing(f -> f.getTaxAgentId() + "." + f.getRangeType() + "." + f.getTargetType() + "." + f.getTargetId() + "." + f.getEmployeeStatus() + "." + f.getIncludeType())) - ), ArrayList::new)); + allRanges = allRanges.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getTaxAgentId() + "." + f.getRangeType() + "." + f.getTargetType() + "." + f.getTargetId() + "." + f.getEmployeeStatus() + "." + f.getIncludeType()))), ArrayList::new)); List salaryEmployees = getEmployMapper().listAll(); List allSalaryEmployees = this.getManageRangeSalaryEmployees(saveParam.getTaxAgentId(), allRanges, salaryEmployees); @@ -326,15 +308,21 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM } /* 同步本地人员范围的关联人员=========================== */ - syncLocalEmp(saveParam.getTaxAgentId(), allSalaryEmployees, null); + if (saveParam.isSync()) { + //同步执行 + syncLocalEmp(saveParam.getTaxAgentId(), allSalaryEmployees, null); + } else { + taskExecutor.execute(() -> { + syncLocalEmp(saveParam.getTaxAgentId(), allSalaryEmployees, null); + }); + } } private void syncLocalEmp(Long taxAgentId, List allSalaryEmployees, List allSubAdminRanges) { - log.info("开始同步人员step"); - taskExecutor.execute(() -> { - syncLocalEmp(taxAgentId, allSalaryEmployees, allSubAdminRanges, (long) user.getUID()); - }); + syncLocalEmp(taxAgentId, allSalaryEmployees, allSubAdminRanges, (long) user.getUID()); + //生成档案 + getSalaryArchiveService(user).handleChangeData(1L); } @@ -449,6 +437,9 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM getTaxAgentEmpService(user).syncTaxAgentEmployee(taxAgentEmpSaveParamList, employeeId); // 同步分管理员的人员 // taxAgentSubAdminEmployeeService.syncTaxAgentSubAdminEmployee(subAdminEmpSaveParamList, employeeId, tenantKey); + + //生成档案 + getSalaryArchiveService(user).handleChangeData(1L); } /** @@ -459,10 +450,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * @return */ private TaxAgentEmpSaveParam getTaxAgentEmpSyncParam(Long taxAgentId, List allSalaryEmployees) { - return TaxAgentEmpSaveParam.builder() - .taxAgentId(taxAgentId) - .salaryEmployeeList(allSalaryEmployees) - .build(); + return TaxAgentEmpSaveParam.builder().taxAgentId(taxAgentId).salaryEmployeeList(allSalaryEmployees).build(); } /** @@ -480,11 +468,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM List singSubAdminRanges = allSubAdminRanges.stream().filter(r -> e.equals(r.getTaxAgentSubAdminId())).collect(Collectors.toList()); List subAdminSalaryEmployees = this.getManageRangeSalaryEmployees(taxAgentId, singSubAdminRanges, salaryEmployees); - subAdminEmpSaveParamList.add(TaxAgentSubAdminEmpSaveParam.builder() - .taxAgentId(taxAgentId) - .subAdminId(e) - .salaryEmployeeList(subAdminSalaryEmployees) - .build()); + subAdminEmpSaveParamList.add(TaxAgentSubAdminEmpSaveParam.builder().taxAgentId(taxAgentId).subAdminId(e).salaryEmployeeList(subAdminSalaryEmployees).build()); }); return subAdminEmpSaveParamList; } @@ -519,7 +503,7 @@ public class TaxAgentManageRangeServiceImpl extends Service implements TaxAgentM * @param taxAgentIds */ @Override - public void syncManageRange(List taxAgentIds,String index) { + public void syncManageRange(List taxAgentIds, String index) { // 开始同步 LocalRunnable localRunnable = new LocalRunnable() { @Override diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index 31d274856..d5c5799ed 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -5,13 +5,11 @@ import com.engine.common.service.impl.HrmCommonServiceImpl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryAuthConstant; -import com.engine.salary.encrypt.datacollection.AddUpDeductionEncrypt; -import com.engine.salary.encrypt.datacollection.AddUpSituationEncrypt; -import com.engine.salary.encrypt.datacollection.OtherDeductionPOEncrypt; import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; +import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.entity.taxagent.bo.TaxAgentBO; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; @@ -214,9 +212,9 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { @Override public PageInfo listPage(TaxAgentQueryParam queryParam) { - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List taxAgentPOS = getTaxAgentMapper().listBySome(queryParam); - return new PageInfo<>(taxAgentPOS); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + taxAgentPOS, TaxAgentPO.class); } @Override @@ -410,7 +408,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { @Override - public String delete(Collection ids) { + public String delete(List ids) { if (org.springframework.util.CollectionUtils.isEmpty(ids)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误")); @@ -421,7 +419,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(85382, "要删除的个税扣缴义务人在不存在或已删除")); } // 正在使用的记录不允许删除 - boolean checkUsed = checkUsed(ids); + boolean checkUsed = checkUsed(ids.get(0)); if (checkUsed) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100570, "正在使用的记录不允许删除")); } @@ -448,21 +446,16 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { /** * 检查正在被使用的记录 * - * @param ids + * @param id * @return */ - private boolean checkUsed(Collection ids) { - //fixme 被薪资档案引用 -// List salaryArchiveList = new LambdaQueryChainWrapper<>(getSalaryArchiveMapper()) -// .eq(SalaryArchivePO::getDeleteType, 0) -// .eq(SalaryArchivePO::getTenantKey) -// .in(SalaryArchivePO::getTaxAgentId, ids) -// .list(); -// getSalaryArchiveMapper().listSome(SalaryArchivePO.builder().t); -// if (CollectionUtils.isNotEmpty(salaryArchiveList)) { -// return Boolean.TRUE; -// } - // todo 被社保福利档案引用 + private boolean checkUsed(Long id) { + //被薪资档案引用 + List salaryArchiveList = getSalaryArchiveMapper().listSome(SalaryArchivePO.builder().taxAgentId(id).build()); + if (CollectionUtils.isNotEmpty(salaryArchiveList)) { + throw new SalaryRunTimeException("存在薪资档案引用"); + } + //被社保福利档案引用 // List socialSchemePOList = new LambdaQueryChainWrapper<>(siArchivesSocialMapper) // .eq(InsuranceArchivesSocialSchemePO::getTenantKey) // .eq(InsuranceArchivesSocialSchemePO::getDeleteType, DeleteTypeEnum.NOT_DELETED.getValue()) @@ -496,28 +489,25 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { // } // 被累计专项附加扣除引用 - List addUpDeductionList = getAddUpDeductionMapper().listSome(AddUpDeduction.builder().taxAgentIds(ids).build()); - AddUpDeductionEncrypt.decryptAddUpDeductionList(addUpDeductionList); + List addUpDeductionList = getAddUpDeductionMapper().listSome(AddUpDeduction.builder().taxAgentIds(Collections.singleton(id)).build()); if (CollectionUtils.isNotEmpty(addUpDeductionList)) { - return Boolean.TRUE; + throw new SalaryRunTimeException("存在累计专项附加扣除引用"); } // 被其他免税扣除引用 - List otherDeductionList = getOtherDeductionMapper().listSome(OtherDeductionPO.builder().taxAgentIds(ids).build()); - OtherDeductionPOEncrypt.decryptOtherDeductionPOList(otherDeductionList); + List otherDeductionList = getOtherDeductionMapper().listSome(OtherDeductionPO.builder().taxAgentIds(Collections.singleton(id)).build()); if (CollectionUtils.isNotEmpty(otherDeductionList)) { - return Boolean.TRUE; + throw new SalaryRunTimeException("存在其他免税扣除引用"); } // 被往期累计情况引用 - List addUpSituationList = getAddUpSituationMapper().listSome(AddUpSituation.builder().taxAgentIds(ids).build()); - AddUpSituationEncrypt.decryptAddUpSituationList(addUpSituationList); + List addUpSituationList = getAddUpSituationMapper().listSome(AddUpSituation.builder().taxAgentIds(Collections.singleton(id)).build()); if (CollectionUtils.isNotEmpty(addUpSituationList)) { - return Boolean.TRUE; + throw new SalaryRunTimeException("存在往期累计情况引用"); } //账套 - List salarySobPOS = getSalarySobMapper().listSome(SalarySobPO.builder().taxAgentIds(ids).build()); + List salarySobPOS = getSalarySobMapper().listSome(SalarySobPO.builder().taxAgentId(id).build()); if (CollectionUtils.isNotEmpty(salarySobPOS)) { - return Boolean.TRUE; + throw new SalaryRunTimeException("存在账套引用"); } return Boolean.FALSE; @@ -552,7 +542,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { * * @param taxAgents * @param currentEmployeeId - * @param chiefCanSeeAll 总管理员是否可见所有 + * @param chiefCanSeeAll 总管理员是否可见所有 * @return */ private List handleForDevolution(List taxAgents, Long currentEmployeeId, boolean chiefCanSeeAll) { @@ -636,6 +626,8 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { } + + @Override public List listTaxAgentAndEmployeeTree() { List taxAgentManageRangeEmployeeList = Lists.newArrayList(); @@ -644,6 +636,20 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { if (CollectionUtils.isEmpty(allTaxAgents)) { return taxAgentManageRangeEmployeeList; } + List taxAgentIds = allTaxAgents.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); + List allEmployees = getTaxAgentMapper().listEmployee(); + taxAgentManageRangeEmployeeList.addAll(getTaxAgentEmp(allTaxAgents, taxAgentIds, allEmployees)); + return taxAgentManageRangeEmployeeList; + } + + @Override + public List listAllTaxAgentAndEmployeeTree() { + List taxAgentManageRangeEmployeeList = Lists.newArrayList(); + // 所有个税扣缴义务人 + List allTaxAgents = listAll(); + if (CollectionUtils.isEmpty(allTaxAgents)) { + return taxAgentManageRangeEmployeeList; + } List taxAgentIds = allTaxAgents.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); List allEmployees = getTaxAgentMapper().listEmployee(); @@ -652,18 +658,8 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { List taxAgentAdminList = getTaxAgentAdminService(user).listByTaxAgentIdsAndEmployeeId(taxAgentIds, (long) user.getUID()); // 是管理员的列表 List adminTaxAgentIds = taxAgentAdminList.stream().map(TaxAgentAdminPO::getTaxAgentId).collect(Collectors.toList()); - - if (CollectionUtils.isNotEmpty(adminTaxAgentIds)) { - taxAgentManageRangeEmployeeList.addAll(getTaxAgentEmp(allTaxAgents, adminTaxAgentIds, allEmployees)); - } - // 2.根据作为非管理员查找自己作为分管理员, 对应的管理范围人员 - List noAdminTaxAgentIds = allTaxAgents.stream() - .map(TaxAgentPO::getId) - .filter(id -> !adminTaxAgentIds.contains(id)).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(noAdminTaxAgentIds)) { -// taxAgentManageRangeEmployeeList.addAll(getTaxAgentSubAdminEmp(allTaxAgents, noAdminTaxAgentIds, allEmployees)); - } - + taxAgentManageRangeEmployeeList.addAll(getTaxAgentEmp(allTaxAgents, adminTaxAgentIds, allEmployees)); + taxAgentManageRangeEmployeeList = taxAgentManageRangeEmployeeList.stream().distinct().collect(Collectors.toList()); return taxAgentManageRangeEmployeeList; } @@ -740,7 +736,7 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { @Override public List listTaxAgentAndEmployee(SalaryEmployeeStatusEnum employeeStatus, Long employeeId) { List taxAgentEmployeeList = Lists.newArrayList(); - + List taxAgentManageRangeEmployeeList = listTaxAgentAndEmployeeTree(employeeStatus, employeeId); taxAgentManageRangeEmployeeList.forEach(m -> { List employeeList = m.getEmployeeList(); diff --git a/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java index 7524ea9c3..d0773e055 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java @@ -2,7 +2,7 @@ package com.engine.salary.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.encrypt.taxdeclaration.TaxDeclarationDetailPOEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.taxagent.dto.TaxAgentEmployeeDTO; import com.engine.salary.entity.taxdeclaration.bo.TaxDeclarationBO; @@ -46,6 +46,8 @@ import java.util.stream.Collectors; **/ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDeclarationDetailService { + private EncryptUtil encryptUtil = new EncryptUtil(); + private TaxDeclarationDetailMapper getTaxDeclarationDetailMapper() { return MapperProxyFactory.getProxy(TaxDeclarationDetailMapper.class); } @@ -231,7 +233,7 @@ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDecla Set employeeIds = SalaryEntityUtil.properties(list, TaxDeclarationEmployeeDTO::getEmployeeId); List taxDeclarationDetailPOS = listByTaxDeclarationIdAndEmployeeIds(queryParam.getTaxDeclarationId(), employeeIds); - TaxDeclarationDetailPOEncrypt.decryptTaxDeclarationDetailPOList(taxDeclarationDetailPOS); + encryptUtil.decryptList(taxDeclarationDetailPOS, TaxDeclarationDetailPO.class); // 查询人员信息 List simpleEmployeeIds = list.stream() .filter(taxDeclarationEmployeeDTO -> Objects.equals(taxDeclarationEmployeeDTO.getEmployeeType(), EmployeeTypeEnum.ORGANIZATION.getValue())) @@ -258,7 +260,7 @@ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDecla @Override public void batchSave(Collection taxDeclarationDetailPOS) { if (CollectionUtils.isNotEmpty(taxDeclarationDetailPOS)) { - TaxDeclarationDetailPOEncrypt.encryptTaxDeclarationDetailPOList(taxDeclarationDetailPOS); + taxDeclarationDetailPOS = encryptUtil.encryptList(new ArrayList<>(taxDeclarationDetailPOS), TaxDeclarationDetailPO.class); List> partition = Lists.partition((List) taxDeclarationDetailPOS, 100); partition.forEach(getTaxDeclarationDetailMapper()::batchInsert); } @@ -270,7 +272,7 @@ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDecla } List taxDeclarationDetailPOS = getTaxDeclarationDetailMapper().listByTaxDeclarationIdAndEmployeeIds(taxDeclarationId, employeeIds); - return TaxDeclarationDetailPOEncrypt.decryptTaxDeclarationDetailPOList(taxDeclarationDetailPOS); + return encryptUtil.decryptList(taxDeclarationDetailPOS, TaxDeclarationDetailPO.class); } @Override diff --git a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java index a9c95c094..f518e664e 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationServiceImpl.java @@ -122,9 +122,9 @@ public class TaxDeclarationServiceImpl extends Service implements TaxDeclaration } // 查询个税申报表 - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List taxDeclarationPOS = getTaxDeclarationMapper().listSome(po); - return new PageInfo<>(taxDeclarationPOS, TaxDeclarationPO.class); + return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + taxDeclarationPOS, TaxDeclarationPO.class); } diff --git a/src/com/engine/salary/sys/service/SalarySysConfService.java b/src/com/engine/salary/sys/service/SalarySysConfService.java index 87b3323e9..ab1ae6a9e 100644 --- a/src/com/engine/salary/sys/service/SalarySysConfService.java +++ b/src/com/engine/salary/sys/service/SalarySysConfService.java @@ -81,6 +81,8 @@ public interface SalarySysConfService { */ Map getEncryptProgress(String progressId); + boolean encryptIsOpen(); + /** * @description 获取个税申报功能重启日期 * @return Date diff --git a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java index 40a269b3f..e86a03f86 100644 --- a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java +++ b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java @@ -4,7 +4,7 @@ import com.api.formmode.mybatis.util.SqlProxyHandle; import com.cloudstore.dev.api.util.Util_DataCache; import com.engine.core.impl.Service; import com.engine.salary.encrypt.AESEncryptUtil; -import com.engine.salary.encrypt.datacollection.SpecialAddDeductionEncrypt; +import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.entity.datacollection.AddUpDeduction; import com.engine.salary.entity.datacollection.AddUpSituation; import com.engine.salary.entity.datacollection.po.OtherDeductionPO; @@ -57,10 +57,11 @@ import weaver.conn.mybatis.MyBatisFactory; import weaver.general.BaseBean; import java.util.*; -import java.util.concurrent.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; import static com.engine.salary.sys.constant.SalarySysConstant.*; -import static java.util.concurrent.Executors.*; +import static java.util.concurrent.Executors.newFixedThreadPool; /** * 薪酬系统配置类 @@ -71,6 +72,7 @@ import static java.util.concurrent.Executors.*; * @version 1.0 **/ public class SalarySysConfServiceImpl extends Service implements SalarySysConfService { + private EncryptUtil encryptUtil = new EncryptUtil(); private SalarySysConfMapper getSalarySysConfMapper() { return SqlProxyHandle.getProxy(SalarySysConfMapper.class); @@ -134,7 +136,6 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe return MapperProxyFactory.getProxy(SpecialAddDeductionMapper.class); } - static SalarySysConfServiceImpl salarySysConfService = new SalarySysConfServiceImpl(); /** * 操作是否需要申报功能 @@ -173,14 +174,14 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe } /** - * @description 获取申报功能状态 * @return Boolean + * @description 获取申报功能状态 * @author Harryxzy * @date 2022/11/7 17:05 */ - public TaxDeclarationFunctionEnum getTaxDeclaration(){ - SalarySysConfPO taxDeclarationFunction = salarySysConfService.getOneByCode(TAX_DECLARATION_FUNCTION); - if(taxDeclarationFunction == null){ + public TaxDeclarationFunctionEnum getTaxDeclaration() { + SalarySysConfPO taxDeclarationFunction = getOneByCode(TAX_DECLARATION_FUNCTION); + if (taxDeclarationFunction == null) { // 默认开启 return TaxDeclarationFunctionEnum.OPEN; } @@ -331,7 +332,7 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe resultMap.put("isSuccess", true); String progressId = UUID.randomUUID().toString(); resultMap.put("progressId", progressId); - SalarySysConfPO sysConfPo = salarySysConfService.getOneByCode(SalarySysConstant.OPEN_APPLICATION_ENCRYPT); + SalarySysConfPO sysConfPo = getOneByCode(SalarySysConstant.OPEN_APPLICATION_ENCRYPT); if (ObjectUtils.isNotEmpty(sysConfPo) && sysConfPo.getConfValue().equals(param.getIsOpenEncrypt())) { return resultMap; } else if (ObjectUtils.isEmpty(sysConfPo) && OpenEnum.OPEN.getValue().equals(param.getIsOpenEncrypt())) { @@ -377,6 +378,15 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe } } + @Override + public boolean encryptIsOpen() { + SalarySysConfPO sysConfPo = getOneByCode(SalarySysConstant.OPEN_APPLICATION_ENCRYPT); + if (sysConfPo != null && sysConfPo.getConfValue().equals(OpenEnum.OFF.getValue())) { + return false; + } + return true; + } + @Override public Map getEncryptProgress(String progressId) { Map resultMap = new HashMap<>(); @@ -451,10 +461,10 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe } List taxDeclarationFunction = getSalarySysConfMapper().listSome(SalarySysConfPO.builder().deleteType(0).confKey(TAX_DECLARATION_FUNCTION).build()); - if(taxDeclarationFunction == null || taxDeclarationFunction.size() == 0 || (taxDeclarationFunction.get(0).getConfValue().equals(TaxDeclarationFunctionEnum.REBOOT.getValue()))){ + if (taxDeclarationFunction == null || taxDeclarationFunction.size() == 0 || (taxDeclarationFunction.get(0).getConfValue().equals(TaxDeclarationFunctionEnum.REBOOT.getValue()))) { // 默认开启报税功能 或者重启状态时前端展示开启 appSettingVO.setIsOpenTaxDeclaration("1"); - }else { + } else { appSettingVO.setIsOpenTaxDeclaration(taxDeclarationFunction.get(0).getConfValue()); } //默认加密开启 @@ -921,9 +931,9 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe if (CollectionUtils.isNotEmpty(addUpSituations)) { addUpSituations.forEach(po -> { if (OpenEnum.OFF.getValue().equals(isOpenEncrypt)) { - SpecialAddDeductionEncrypt.decrypt(po); + encryptUtil.decrypt(po, SpecialAddDeductionPO.class); } else { - SpecialAddDeductionEncrypt.encrypt(po); + encryptUtil.encrypt(po, SpecialAddDeductionPO.class); } }); List> partition = Lists.partition(addUpSituations, 50); diff --git a/src/com/engine/salary/util/page/SalaryPageUtil.java b/src/com/engine/salary/util/page/SalaryPageUtil.java index bbb2917d5..58bca7ddf 100644 --- a/src/com/engine/salary/util/page/SalaryPageUtil.java +++ b/src/com/engine/salary/util/page/SalaryPageUtil.java @@ -27,7 +27,7 @@ public class SalaryPageUtil { return pageInfo; } - public static PageInfo buildPage(Integer pageNo, Integer pageSize,Class clazz) { + public static PageInfo buildPage(Integer pageNo, Integer pageSize, Class clazz) { pageNo = pageNo == null || pageNo <= 0 ? 1 : pageNo; pageSize = pageSize == null || pageSize <= 0 ? 10 : pageSize; PageInfo pageInfo = new PageInfo<>(clazz); @@ -37,6 +37,28 @@ public class SalaryPageUtil { return pageInfo; } + /** + * 内存分页 + * + * @param pageNo + * @param pageSize + * @param source + * @param clazz + * @param + * @return + */ + public static PageInfo buildPage(Integer pageNo, Integer pageSize, List source, Class clazz) { + pageNo = pageNo == null || pageNo <= 0 ? 1 : pageNo; + pageSize = pageSize == null || pageSize <= 0 ? 10 : pageSize; + PageInfo pageInfo = new PageInfo<>(clazz); + pageInfo.setPageNum(pageNo); + pageInfo.setPageSize(pageSize); + pageInfo.setTotal(source == null ? 0 : source.size()); + pageInfo.setList(subList(pageNo, pageSize, source)); + return pageInfo; + } + + /** * 分页 * diff --git a/src/com/engine/salary/web/SIAccountController.java b/src/com/engine/salary/web/SIAccountController.java index 053219066..790c125f0 100644 --- a/src/com/engine/salary/web/SIAccountController.java +++ b/src/com/engine/salary/web/SIAccountController.java @@ -7,6 +7,7 @@ import com.engine.salary.entity.hrm.param.HrmQueryParam; import com.engine.salary.entity.siaccount.dto.InsuranceAccountTabDTO; import com.engine.salary.entity.siaccount.dto.InsuranceAccountViewListDTO; import com.engine.salary.entity.siaccount.dto.InsuranceAcctDetailImportFieldDTO; +import com.engine.salary.entity.siaccount.dto.InsuranceCompensationDTO; import com.engine.salary.entity.siaccount.param.*; import com.engine.salary.entity.siaccount.po.InsuranceAccountBatchPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; @@ -698,4 +699,91 @@ public class SIAccountController { } // **********************************退差 end*********************************/ + + // **********************************调差 start*********************************/ + /** + * 获取当前登录人所控制的人员范围 + */ + @POST + @Path("/getEmployeeListToCompensation") + @Produces(MediaType.APPLICATION_JSON) + public String getEmployeeListToCompensation(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody HrmQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSIAccountWrapper(user)::getEmployeeListToCompensation, param); + } + + /** + * 通过id获取InsuranceAccountDetailPO中的社保福利项 + */ + @GET + @Path("/compensationCategoryType") + @Produces(MediaType.APPLICATION_JSON) + public String compensationCategoryType(@Context HttpServletRequest request, @Context HttpServletResponse response, + @QueryParam("id") Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>>(user).run(getSIAccountWrapper(user)::compensationCategoryType, id); + } + + /** + * 获取当前调差福利类型-公司方支出总计 + */ + @POST + @Path("/compensationComTotal") + @Produces(MediaType.APPLICATION_JSON) + public String compensationComTotal(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody List paramList) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, List>>(user).run(getSIAccountWrapper(user)::compensationComTotal, paramList); + } + + /** + * 社保调差保存 + */ + @POST + @Path("/compensationSave") + @Produces(MediaType.APPLICATION_JSON) + public String compensationSave(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody List param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, Map>(user).run(getSIAccountWrapper(user)::compensationSave, param); + } + + /** + * 社保调差默认配置保存 + */ + @POST + @Path("/compensationConfigSave") + @Produces(MediaType.APPLICATION_JSON) + public String compensationConfigSave(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody List param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, String>(user).run(getSIAccountWrapper(user)::compensationConfigSave, param); + } + + /** + * 社保调差撤回 + */ + @POST + @Path("/compensationBack") + @Produces(MediaType.APPLICATION_JSON) + public String compensationBack(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody InsuranceCompensationDTO param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSIAccountWrapper(user)::compensationBack, param); + } + + /** + * 社保调差列表 + */ + @POST + @Path("/compensationList") + @Produces(MediaType.APPLICATION_JSON) + public String compensationList(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody InsuranceCompensationDTO param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSIAccountWrapper(user)::compensationList, param); + } + + // **********************************调差 end*********************************/ } diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index 01782641d..8d2db04ef 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -380,6 +380,15 @@ public class SalaryAcctController { return new ResponseResult>(user).run(getSalaryAcctResultWrapper(user)::listPage, param); } + //合计行 + @POST + @Path("/acctresult/sum") + @Produces(MediaType.APPLICATION_JSON) + public String sumSalaryAcctResult(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultQueryParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryAcctResultWrapper(user)::sumSalaryAcctResult, param); + } + //薪资核算结果详情 @GET diff --git a/src/com/engine/salary/web/SalaryFormulaController.java b/src/com/engine/salary/web/SalaryFormulaController.java index 449877334..5f0d41c80 100644 --- a/src/com/engine/salary/web/SalaryFormulaController.java +++ b/src/com/engine/salary/web/SalaryFormulaController.java @@ -1,5 +1,7 @@ package com.engine.salary.web; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.serializer.SerializerFeature; import com.engine.common.util.ServiceUtil; import com.engine.salary.entity.salaryformula.dto.ExpressFormulaDTO; import com.engine.salary.entity.salaryformula.param.SalaryFormulaFieldQueryParam; @@ -8,7 +10,11 @@ import com.engine.salary.entity.salaryformula.po.FormulaPO; import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.util.ResponseResult; import com.engine.salary.wrapper.SalaryFormulaWrapper; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSetDataSource; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -18,9 +24,11 @@ import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +@Slf4j public class SalaryFormulaController { @@ -72,5 +80,51 @@ public class SalaryFormulaController { return new ResponseResult(user).run(getSalaryFormulaWrapper(user)::datasourceList); } + @GET + @Path("/checkSql") + @Produces(MediaType.APPLICATION_JSON) + public String save(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + String result = ""; + Map map = new HashMap<>(); + + try { + String sql = request.getParameter("sql"); + String sqlReturnKey = request.getParameter("sqlReturnKey"); + String datasourceId = request.getParameter("datasourceId"); + RecordSetDataSource rs = new RecordSetDataSource(datasourceId); + log.info("sql run{},datasourceId:{},sqlReturnKey:{}", sql, datasourceId, sqlReturnKey); + map.put("sql",sql); + map.put("sqlReturnKey",sqlReturnKey); + map.put("datasourceId",datasourceId); + if (rs.executeSql(sql)) { + if (rs.next()) { + result = rs.getString(sqlReturnKey); + } + } + map.put("result",result); + } catch (Exception e) { + log.error("sql error", e); + Map apidatas = new HashMap<>(); + apidatas.put("status", false); + apidatas.put("errormsg", e.getMessage()); + return JSONObject.toJSONString(apidatas, SerializerFeature.DisableCircularReferenceDetect); + } + + Map apidatas = new HashMap<>(); + apidatas.put("status", true); + apidatas.put("data", map); + return getJsonString(apidatas); + } + + private static String getJsonString(Object apidatas) { + ObjectMapper mapper = new ObjectMapper(); + try { + return mapper.writeValueAsString(apidatas); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return ""; + } } diff --git a/src/com/engine/salary/web/SalarySendRangeController.java b/src/com/engine/salary/web/SalarySendRangeController.java new file mode 100644 index 000000000..11a8730a0 --- /dev/null +++ b/src/com/engine/salary/web/SalarySendRangeController.java @@ -0,0 +1,58 @@ +package com.engine.salary.web; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryBill.dto.SalarySendRangeListDTO; +import com.engine.salary.entity.salaryBill.param.SalarySendRangeQueryParam; +import com.engine.salary.entity.salaryBill.param.SalarySendRangeSaveParam; +import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.page.PageInfo; +import com.engine.salary.wrapper.SalarySendRangeWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Collection; + +/** + * @Description: 工资单范围 + */ +public class SalarySendRangeController { + private SalarySendRangeWrapper getSalarySendRangeWrapper(User user) { + return ServiceUtil.getService(SalarySendRangeWrapper.class, user); + } + + @POST + @Path("/save") + @Produces(MediaType.APPLICATION_JSON) + public String save(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody SalarySendRangeSaveParam saveParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalarySendRangeWrapper(user)::save, saveParam); + } + + @POST + @Path("/delete") + @Produces(MediaType.APPLICATION_JSON) + public String deleteByIds(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody Collection ids) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, Void>(user).run(getSalarySendRangeWrapper(user)::deleteByIds, ids); + } + + @POST + @Path("/list") + @Produces(MediaType.APPLICATION_JSON) + public String save(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody SalarySendRangeQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalarySendRangeWrapper(user)::listPage, queryParam); + } + +} diff --git a/src/com/engine/salary/web/TaxAgentController.java b/src/com/engine/salary/web/TaxAgentController.java index 55c43b0d7..0b1272f47 100644 --- a/src/com/engine/salary/web/TaxAgentController.java +++ b/src/com/engine/salary/web/TaxAgentController.java @@ -198,9 +198,9 @@ public class TaxAgentController { @POST @Path("/delete") @Produces(MediaType.APPLICATION_JSON) - public String delete(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Collection ids) { + public String delete(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List ids) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult, String>(user).run(getTaxAgentWrapper(user)::delete, ids); + return new ResponseResult, String>(user).run(getTaxAgentWrapper(user)::delete, ids); } /** diff --git a/src/com/engine/salary/wrapper/SIAccountWrapper.java b/src/com/engine/salary/wrapper/SIAccountWrapper.java index 6f3b6e134..3180d9979 100644 --- a/src/com/engine/salary/wrapper/SIAccountWrapper.java +++ b/src/com/engine/salary/wrapper/SIAccountWrapper.java @@ -5,13 +5,19 @@ import com.engine.core.impl.Service; import com.engine.salary.entity.hrm.dto.HrmInfoDTO; import com.engine.salary.entity.hrm.param.HrmQueryParam; +import com.engine.salary.entity.siaccount.dto.InsuranceCompensationDTO; +import com.engine.salary.entity.siaccount.param.CompensationParam; import com.engine.salary.entity.siaccount.param.RecessionParam; +import com.engine.salary.service.SICompensationService; import com.engine.salary.service.SIRecessionService; +import com.engine.salary.service.impl.SICompensationServiceImpl; import com.engine.salary.service.impl.SIRecessionServiceImpl; import com.engine.salary.util.page.PageInfo; import weaver.hrm.User; import java.util.Collection; +import java.util.List; +import java.util.Map; /** * @Author weaver_cl @@ -24,6 +30,10 @@ public class SIAccountWrapper extends Service { return (SIRecessionService) ServiceUtil.getService(SIRecessionServiceImpl.class, user); } + private SICompensationService getSICompensationService(User user) { + return (SICompensationService) ServiceUtil.getService(SICompensationServiceImpl.class, user); + } + /** * 新增退差数据 * @param param 退差请求体 @@ -42,8 +52,66 @@ public class SIAccountWrapper extends Service { getSIRecessionService(user).del(ids, currentEmployeeId); } + /** + * 可退差人员列表 + */ public PageInfo getEmployeeListByTaxAgent(HrmQueryParam param) { return getSIRecessionService(user).getEmployeeListByTaxAgent(param); } + + /** + * 可调差人员列表 + */ + public List getEmployeeListToCompensation(HrmQueryParam hrmQueryParam) { + + return getSICompensationService(user).getEmployeeListToCompensation(hrmQueryParam); + } + + /** + * 获取社保福利项 + */ + public List> compensationCategoryType(Long id) { + + return getSICompensationService(user).compensationCategoryType(id); + } + + /** + * 获取当前调差福利类型-公司方支出总计 + */ + public List> compensationComTotal(List paramList) { + + return getSICompensationService(user).compensationComTotal(paramList); + } + + /** + * 社保调差保存 + */ + public Map compensationSave(List param) { + + return getSICompensationService(user).compensationAccount(param); + } + + /** + * 社保调差默认配置保存 + */ + public String compensationConfigSave(List param) { + + return getSICompensationService(user).compensationConfigSave(param); + } + + /** + * 社保调差撤回 + */ + public String compensationBack(InsuranceCompensationDTO param) { + + return getSICompensationService(user).compensationRevert(param); + } + + /** + * 社保调差列表 + */ + public Map compensationList(InsuranceCompensationDTO param) { + return getSICompensationService(user).compensationList(param.getBillMonth(), param.getPaymentOrganization()); + } } diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index 6cfc09547..0d01aff15 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -18,7 +18,6 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; import com.engine.salary.sys.entity.po.SalarySysConfPO; -import com.engine.salary.sys.enums.OpenEnum; import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.SalaryEntityUtil; @@ -105,12 +104,30 @@ public class SalaryAcctResultWrapper extends Service { datas.put("pageInfo", page); datas.put("columns", columns); +// //合计 +// SalarySysConfPO openSum = getSalarySysConfService(user).getOneByCode(OPEN_ACCT_RESULT_SUM); +// if (openSum != null && StringUtils.isNotBlank(openSum.getConfValue()) && OpenEnum.parseByValue(openSum.getConfValue()) == OpenEnum.OPEN) { +// Map sumRow = getSalaryAcctResultService(user).sumRow(queryParam); +// datas.put("sumRow", sumRow); +// } + return datas; + } + + /** + * 合计行 + * + * @param queryParam 列表查询条件 + * @return + */ + public Map sumSalaryAcctResult(SalaryAcctResultQueryParam queryParam) { + ValidUtil.doValidator(queryParam); + + Map datas = new HashMap<>(); + //合计 SalarySysConfPO openSum = getSalarySysConfService(user).getOneByCode(OPEN_ACCT_RESULT_SUM); - if (openSum != null && StringUtils.isNotBlank(openSum.getConfValue()) && OpenEnum.parseByValue(openSum.getConfValue()) == OpenEnum.OPEN) { - Map sumRow = getSalaryAcctResultService(user).sumRow(queryParam); - datas.put("sumRow", sumRow); - } + Map sumRow = getSalaryAcctResultService(user).sumRow(queryParam); + datas.put("sumRow", sumRow); return datas; } @@ -241,6 +258,7 @@ public class SalaryAcctResultWrapper extends Service { } + /** * 薪资核算-校验 * diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index bd230481c..abf67792f 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -36,7 +36,6 @@ import com.google.common.collect.Maps; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import weaver.conn.RecordSet; import weaver.hrm.User; import java.util.*; @@ -466,17 +465,6 @@ public class SalaryArchiveWrapper extends Service { return getSalaryArchiveService(user).exportList(queryParam); } - public Map checkImportSalaryArchive(SalaryArchiveImportHandleParam param) { - String queryImageId = "select imagefileid from docimagefile where docid = ?"; - if (param.getImageId() != null && !"".equals(param.getImageId())) { - RecordSet rs = new RecordSet(); - rs.executeQuery(queryImageId, param.getImageId()); - if (rs.next()) { - param.setImageId(rs.getString("imagefileid")); - } - } - return getSalaryArchiveExcelService(user).batchImportEbatch(param); - } /** @@ -527,6 +515,20 @@ public class SalaryArchiveWrapper extends Service { return getSalaryArchiveExcelService(user).processInit(importData); } + public Map checkAdjustmentSalaryArchive(SalaryArchiveImportActionParam importData) { + importData.setImportType("salaryItemAdjust"); + importData.setListType("FIXED"); + importData.setAddData(false); + return getSalaryArchiveExcelService(user).processInit(importData); + } + + public Map adjustmentSalaryArchive(SalaryArchiveImportActionParam importData) { + importData.setImportType("salaryItemAdjust"); + importData.setListType("FIXED"); + importData.setAddData(true); + return getSalaryArchiveExcelService(user).processInit(importData); + } + /** * 停薪 * diff --git a/src/com/engine/salary/wrapper/SalarySendRangeWrapper.java b/src/com/engine/salary/wrapper/SalarySendRangeWrapper.java new file mode 100644 index 000000000..a4edde955 --- /dev/null +++ b/src/com/engine/salary/wrapper/SalarySendRangeWrapper.java @@ -0,0 +1,36 @@ +package com.engine.salary.wrapper; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.salaryBill.dto.SalarySendRangeListDTO; +import com.engine.salary.entity.salaryBill.param.SalarySendRangeQueryParam; +import com.engine.salary.entity.salaryBill.param.SalarySendRangeSaveParam; +import com.engine.salary.service.SalarySendRangeService; +import com.engine.salary.service.impl.SalarySendRangeServiceImpl; +import com.engine.salary.util.page.PageInfo; +import weaver.hrm.User; + +import java.util.ArrayList; +import java.util.Collection; + +public class SalarySendRangeWrapper extends Service { + private SalarySystemConfigWrapper getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySystemConfigWrapper.class, user); + } + + private SalarySendRangeService getSalarySendRangeService(User user) { + return ServiceUtil.getService(SalarySendRangeServiceImpl.class, user); + } + + public PageInfo listPage(SalarySendRangeQueryParam queryParam) { + return getSalarySendRangeService(user).listPage(queryParam); + } + + public void save(SalarySendRangeSaveParam saveParam) { + getSalarySendRangeService(user).save(saveParam); + } + + public void deleteByIds(Collection ids) { + getSalarySendRangeService(user).deleteByIds(new ArrayList<>(ids)); + } +} diff --git a/src/com/engine/salary/wrapper/SalarySendWrapper.java b/src/com/engine/salary/wrapper/SalarySendWrapper.java index 5c2de9291..e5f7e77aa 100644 --- a/src/com/engine/salary/wrapper/SalarySendWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySendWrapper.java @@ -98,16 +98,15 @@ public class SalarySendWrapper extends Service { if (CollectionUtils.isNotEmpty(salarySobIds)) { queryParam.setSalarySobIds(salarySobIds); SalarySendMapper salarySendMapper = sqlSession.getMapper(SalarySendMapper.class); - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); list = salarySendMapper.list(queryParam); } } else { SalarySendMapper salarySendMapper = sqlSession.getMapper(SalarySendMapper.class); - SalaryPageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); list = salarySendMapper.list(queryParam); } - PageInfo pageInfo = new PageInfo<>(list, SalarySendListDTO.class); + PageInfo pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), + list, SalarySendListDTO.class); List pageList = pageInfo.getList(); List salarySobIds = pageList.stream().map(SalarySendListDTO::getSalarySobId).distinct().collect(Collectors.toList()); // 获取默认模板 @@ -206,7 +205,7 @@ public class SalarySendWrapper extends Service { conditionItems.add(username); // 个税扣缴义务人 - SearchConditionItem taxAgent = conditionFactory.createCondition(ConditionType.SELECT, 25034, "taxAgent"); + SearchConditionItem taxAgent = conditionFactory.createCondition(ConditionType.SELECT, 25034, "taxAgentId"); taxAgent.setColSpan(2);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 taxAgent.setFieldcol(16); //条件输入框所占宽度,默认值18 taxAgent.setLabelcol(8); @@ -220,7 +219,7 @@ public class SalarySendWrapper extends Service { conditionItems.add(taxAgent); // 部门 - SearchConditionItem departmentName = conditionFactory.createCondition(ConditionType.BROWSER, 502227, "department", "4"); + SearchConditionItem departmentName = conditionFactory.createCondition(ConditionType.BROWSER, 502227, "departmentIds", "4"); departmentName.setColSpan(2); departmentName.setFieldcol(16); departmentName.setLabelcol(8); @@ -231,7 +230,7 @@ public class SalarySendWrapper extends Service { conditionItems.add(departmentName); // 岗位 - SearchConditionItem position = conditionFactory.createCondition(ConditionType.BROWSER, 502227, "position", "24"); + SearchConditionItem position = conditionFactory.createCondition(ConditionType.BROWSER, 502227, "positionIds", "24"); position.setColSpan(2); position.setFieldcol(16); position.setLabelcol(8); @@ -254,29 +253,16 @@ public class SalarySendWrapper extends Service { status.setLabel("状态"); //设置文本值 这个将覆盖多语言标签的值 conditionItems.add(status); -// //入职日期 -// SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 25034, "hiredate"); -// hiredate.setColSpan(2);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 -// hiredate.setFieldcol(16); //条件输入框所占宽度,默认值18 -// hiredate.setLabelcol(8); -// hiredate.setViewAttr(2); // 编辑权限 1:只读,2:可编辑, 3:必填 默认2 -// Map otherParams1 = new HashMap(); -// otherParams1.put("format", "yyyy-MM-dd"); -// hiredate.setOtherParams(otherParams1); -// hiredate.setInputType("day"); -// hiredate.setMode("day"); -// hiredate.setLabel("入职日期"); //设置文本值 这个将覆盖多语言标签的值 -// conditionItems.add(hiredate); - //发送状态 - SearchConditionItem sendStatus = conditionFactory.createCondition(ConditionType.SELECT, 25034, "sendStatus"); + SearchConditionItem sendStatus = conditionFactory.createCondition(ConditionType.SELECT, 25034, "sendStatusVal"); sendStatus.setColSpan(2);//定义一行显示条件数,默认值为2,当值为1时标识该条件单独占一行 sendStatus.setFieldcol(16); //条件输入框所占宽度,默认值18 sendStatus.setLabelcol(8); List sendStatusOptions = new ArrayList<>(); - UserStatusEnum.getList().forEach(e -> sendStatusOptions.add(new SearchConditionOption(e.get("id"), e.get("content")))); - status.setOptions(sendStatusOptions); - status.setInputType(""); + Arrays.asList(SalarySendStatusEnum.values()) + .forEach(e -> sendStatusOptions.add(new SearchConditionOption(e.getValue().toString(), e.getDefaultLabel()))); + sendStatus.setOptions(sendStatusOptions); + sendStatus.setInputType(""); sendStatus.setViewAttr(2); // 编辑权限 1:只读,2:可编辑, 3:必填 默认2 sendStatus.setLabel("发送状态"); //设置文本值 这个将覆盖多语言标签的值 conditionItems.add(sendStatus); @@ -499,13 +485,6 @@ public class SalarySendWrapper extends Service { // 3.组装详情数据 List> listMaps = getSalarySendService(user).buildDetailList(salaryItems, records, salarySend.getSalaryAccountingId()); -// List employeeIds = records.stream().map(SalarySendDetailListDTO::getEmployeeId).collect(Collectors.toList()); - - // 是否合并计税 - // TODO: 1/25/22 判断是否合并计税 - - - List columns = buildDetailListWeaTableColumns(); for (SalaryTemplateSalaryItemListDTO salaryItem : salaryItems) { diff --git a/src/com/engine/salary/wrapper/TaxAgentWrapper.java b/src/com/engine/salary/wrapper/TaxAgentWrapper.java index ac7aab10b..c4bcd5851 100644 --- a/src/com/engine/salary/wrapper/TaxAgentWrapper.java +++ b/src/com/engine/salary/wrapper/TaxAgentWrapper.java @@ -277,7 +277,7 @@ public class TaxAgentWrapper extends Service { * @param ids * @return */ - public String delete(Collection ids) { + public String delete(List ids) { return getTaxAgentService(user).delete(ids); }