diff --git a/src/com/api/salary/web/DemoController.java b/src/com/api/salary/web/DemoController.java
new file mode 100644
index 000000000..c34cb4d3f
--- /dev/null
+++ b/src/com/api/salary/web/DemoController.java
@@ -0,0 +1,13 @@
+package com.api.salary.web;
+
+import javax.ws.rs.Path;
+
+/**
+ * @Author weaver_cl
+ * @Description: TODO
+ * @Date 2022/3/17
+ * @Version V1.0
+ **/
+@Path("/bs/salary")
+public class DemoController extends com.engine.salary.demo.DemoController {
+}
diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java
index 7d380f093..7bef40209 100644
--- a/src/com/engine/salary/biz/SIArchivesBiz.java
+++ b/src/com/engine/salary/biz/SIArchivesBiz.java
@@ -1,22 +1,23 @@
package com.engine.salary.biz;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
import com.api.browser.bean.SearchConditionGroup;
import com.api.browser.bean.SearchConditionItem;
import com.api.browser.bean.SearchConditionOption;
+import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
+import com.engine.salary.demo.DemoPo;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.siarchives.bo.InsuranceArchivesBO;
import com.engine.salary.entity.siarchives.dto.InsuranceArchivesBaseDTO;
import com.engine.salary.entity.siarchives.dto.InsuranceArchivesFundSchemeDTO;
import com.engine.salary.entity.siarchives.dto.InsuranceArchivesOtherSchemeDTO;
import com.engine.salary.entity.siarchives.dto.InsuranceArchivesSocialSchemeDTO;
-import com.engine.salary.entity.siarchives.param.InsuranceArchivesFundSaveParam;
-import com.engine.salary.entity.siarchives.param.InsuranceArchivesOtherSaveParam;
-import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam;
-import com.engine.salary.entity.siarchives.param.InsuranceArchivesSocialSaveParam;
+import com.engine.salary.entity.siarchives.param.*;
+import com.engine.salary.entity.siarchives.po.InsuranceArchivesEmployeePO;
import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO;
import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO;
import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO;
@@ -24,19 +25,18 @@ import com.engine.salary.entity.sicategory.po.ICategoryPO;
import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO;
import com.engine.salary.entity.sischeme.po.InsuranceSchemePO;
import com.engine.salary.entity.taxrate.TaxAgent;
-import com.engine.salary.enums.sicategory.DeleteTypeEnum;
-import com.engine.salary.enums.sicategory.IsPaymentEnum;
-import com.engine.salary.enums.sicategory.UndertakerEnum;
-import com.engine.salary.enums.sicategory.WelfareTypeEnum;
+import com.engine.salary.enums.sicategory.*;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.TaxAgentMapper;
import com.engine.salary.mapper.siarchives.FundSchemeMapper;
import com.engine.salary.mapper.siarchives.OtherSchemeMapper;
import com.engine.salary.mapper.siarchives.SocialSchemeMapper;
+import com.engine.salary.mapper.sicategory.ICategoryMapper;
import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper;
-import com.engine.salary.util.SalaryAssert;
-import com.engine.salary.util.SalaryDateUtil;
-import com.engine.salary.util.SalaryFormItemUtil;
+import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper;
+import com.engine.salary.util.*;
+import com.engine.salary.util.page.PageInfo;
+import com.engine.salary.util.page.PageUtil;
import org.apache.ibatis.session.SqlSession;
import weaver.conn.mybatis.MyBatisFactory;
import weaver.general.Util;
@@ -44,6 +44,7 @@ import weaver.hrm.User;
import java.time.LocalDateTime;
import java.util.*;
+import java.util.function.Function;
import java.util.stream.Collectors;
@@ -329,7 +330,7 @@ public class SIArchivesBiz {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
OtherSchemeMapper otherSchemeMapper = sqlSession.getMapper(OtherSchemeMapper.class);
- InsuranceArchivesOtherSchemePO insuranceArchivesOtherSchemePO = otherSchemeMapper.getOtherByEmployeeId(employeeId);
+ InsuranceArchivesOtherSchemePO insuranceArchivesOtherSchemePO = otherSchemeMapper.getOtherByEmployeeId(Collections.singletonList(employeeId)).get(0);
InsuranceArchivesOtherSchemeDTO data = InsuranceArchivesBO.convertOtherPOtoDTO(insuranceArchivesOtherSchemePO, employeeId);
if (insuranceArchivesOtherSchemePO == null) {
data.setEmployeeId(employeeId);
@@ -353,7 +354,7 @@ public class SIArchivesBiz {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
FundSchemeMapper fundSchemeMapper = sqlSession.getMapper(FundSchemeMapper.class);
- InsuranceArchivesFundSchemePO insuranceArchivesFundSchemePO = fundSchemeMapper.getFundByEmployeeId(employeeId);
+ InsuranceArchivesFundSchemePO insuranceArchivesFundSchemePO = fundSchemeMapper.getFundByEmployeeId(Collections.singletonList(employeeId)).get(0);
InsuranceArchivesFundSchemeDTO data = InsuranceArchivesBO.convertFundPOtoDTO(insuranceArchivesFundSchemePO, employeeId);
if (insuranceArchivesFundSchemePO == null) {
data.setEmployeeId(employeeId);
@@ -392,7 +393,7 @@ public class SIArchivesBiz {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SocialSchemeMapper socialSchemeMapper = sqlSession.getMapper(SocialSchemeMapper.class);
- return socialSchemeMapper.getSocialByEmployeeId(employeeId);
+ return socialSchemeMapper.getSocialByEmployeeId(Collections.singletonList(employeeId)).get(0);
}finally {
sqlSession.close();
}
@@ -542,4 +543,280 @@ public class SIArchivesBiz {
sqlSession.close();
}
}
+
+ /**
+ * 档案列表
+ *
+ * 这里是一个含有比较多动态字段的列表,用的是手动拼装的方式
+ * @param param 高级搜索条件
+ * @param operateId 操作员id
+ * @return table
+ */
+ public Map listPage(InsuranceArchivesListParam param, long operateId) {
+ Map apidatas = new HashMap<>(16);
+ InsuranceArchivesListParam request = InsuranceArchivesListParam.builder().build();
+ if (param.getHireDate() != null && param.getHireDate().length == 2) {
+ param.setHiredateStart(param.getHireDate()[0]);
+ param.setHiredateEnd(param.getHireDate()[1]);
+ }
+ if (param.getDimissionDate() != null && param.getDimissionDate().length == 2) {
+ param.setDimissionDateStart(param.getDimissionDate()[0]);
+ param.setDimissionDateEnd(param.getDimissionDate()[1]);
+ }
+ long current = param.getCurrent() == null ? 1L : param.getCurrent();
+ long pageSize = param.getPageSize() == null ? 10 : param.getPageSize();
+ long startNum = (current - 1) * pageSize;
+ param.setStartNum(startNum);
+ param.setPageSize(pageSize);
+ if (Objects.equals("fromQuickSearch", param.getDataSource())) {
+ request.setStatuses(param.getStatuses());
+ request.setKeyword(param.getUserName());
+ request.setStartNum(param.getStartNum());
+ request.setPageSize(param.getPageSize());
+ request.setCurrent(current);
+ } else {
+ request = param;
+ }
+
+ apidatas = listPageEmployeePOS(request, operateId);
+
+ return apidatas;
+ }
+
+
+
+ /**
+ * 获取员工的基本信息
+ *
+ * 此处主要是一个公共接口,有多处引用。我们薪资系统只保存员工id(employeeId),
+ * 但是页面上需要展示员工的更多信息(姓名,部门,状态。。。),
+ * 所以这里主要是用于接收联表数据的一个接口
+ *
+ * @param param 高级搜索条件,用于过滤数据
+ * @param operateId 操作员id
+ * @return list
+ */
+ public Map listPageEmployeePOS(InsuranceArchivesListParam param, long operateId) {
+ SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
+ Map datas = new HashMap<>(16);
+ try {
+ SocialSchemeMapper socialSchemeMapper = sqlSession.getMapper(SocialSchemeMapper.class);
+ PageUtil.start(param.getCurrent().intValue(), param.getPageSize().intValue());
+ List page = socialSchemeMapper.listPageEmployeePOS(param);
+ PageInfo pageInfo = new PageInfo<>(page, InsuranceArchivesEmployeePO.class);
+ List