From 19dd1eed17c41e7a63322d2763361830ec173aa4 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Fri, 18 Mar 2022 18:00:51 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E6=A1=A3=E6=A1=88=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E5=88=97=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/api/salary/web/DemoController.java | 13 + src/com/engine/salary/biz/SIArchivesBiz.java | 305 +++++++++++++++++- src/com/engine/salary/biz/SISchemeBiz.java | 4 +- .../engine/salary/common/BaseQueryParam.java | 22 ++ src/com/engine/salary/demo/DemoPageCmd.java | 22 +- src/com/engine/salary/demo/DemoPo.java | 4 +- .../param/InsuranceArchivesListParam.java | 93 ++++++ .../po/InsuranceArchivesEmployeePO.java | 48 +++ src/com/engine/salary/enums/UserStatus.java | 44 +++ .../mapper/siarchives/FundSchemeMapper.java | 2 +- .../mapper/siarchives/FundSchemeMapper.xml | 8 +- .../mapper/siarchives/OtherSchemeMapper.java | 2 +- .../mapper/siarchives/OtherSchemeMapper.xml | 8 +- .../mapper/siarchives/SocialSchemeMapper.java | 11 +- .../mapper/siarchives/SocialSchemeMapper.xml | 100 +++++- .../mapper/sicategory/ICategoryMapper.java | 3 +- .../mapper/sicategory/ICategoryMapper.xml | 8 + .../sischeme/InsuranceSchemeMapper.java | 7 + .../mapper/sischeme/InsuranceSchemeMapper.xml | 9 + .../salary/service/SIArchivesService.java | 3 + .../service/impl/SIArchivesServiceImpl.java | 14 +- .../salary/web/SIArchivesController.java | 18 ++ 22 files changed, 714 insertions(+), 34 deletions(-) create mode 100644 src/com/api/salary/web/DemoController.java create mode 100644 src/com/engine/salary/common/BaseQueryParam.java create mode 100644 src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java create mode 100644 src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java create mode 100644 src/com/engine/salary/enums/UserStatus.java 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> records = buildTableData(param, page); + datas.put("pageInfo", pageInfo); + datas.put("datas",records); + datas.put("columns",buildWeaTableColumns(page, operateId)); + return datas; + + }finally { + sqlSession.close(); + } + } + + /** + * + * @param + * @param operateId + * @return + */ + private List buildWeaTableColumns(List insuranceArchivesEmployeePOS, long operateId) { + Map> titleMap = buildColumnTitle(insuranceArchivesEmployeePOS, operateId); + List list = new ArrayList<>(); + WeaTableColumn nameColumn = new WeaTableColumn( "100px","姓名", "employeeName" ); + nameColumn.setFixed("left"); + list.add(nameColumn); + list.add(new WeaTableColumn("150px","部门", "departmentName")); + list.add(new WeaTableColumn("150px","手机号", "mobile")); + list.add(new WeaTableColumn("150px","员工状态", "status")); + list.add(new WeaTableColumn("150px","社保方案名称", "socialName")); + titleMap.get(WelfareTypeEnum.SOCIAL_SECURITY.getValue()).forEach((k, v) -> list.add(new WeaTableColumn(v, k, "150px"))); + list.add(new WeaTableColumn("150px","社保账号", "socialAccount")); + list.add(new WeaTableColumn("150px","社保起始缴纳月", "socialStartTime")); + list.add(new WeaTableColumn("150px","社保最后缴纳月", "socialEndTime")); + list.add(new WeaTableColumn("150px","公积金方案名称", "fundName")); + list.add(new WeaTableColumn("150px","公积金账号", "fundAccount")); + titleMap.get(WelfareTypeEnum.ACCUMULATION_FUND.getValue()).forEach((k, v) -> list.add(new WeaTableColumn(v, k, "150px"))); + list.add(new WeaTableColumn("150px","补充公积金账号", "supplementFundAccount" )); + list.add(new WeaTableColumn("150px","公积金起始缴纳月", "fundStartTime")); + list.add(new WeaTableColumn("150px","公积金最后缴纳月", "fundEndTime")); + list.add(new WeaTableColumn("150px","其他福利方案名称", "otherName")); + titleMap.get(WelfareTypeEnum.OTHER.getValue()).forEach((k, v) -> list.add(new WeaTableColumn(v, k, "150px"))); + list.add(new WeaTableColumn("150px","其他福利起始缴纳月", "otherStartTime")); + list.add(new WeaTableColumn("150px","其他福利最后缴纳月", "otherEndTime")); + return list; + } + + /** + * + * @param insuranceArchivesEmployeePOS + * @param operateId + * @return + */ + public Map> buildColumnTitle(List insuranceArchivesEmployeePOS, long operateId) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + Map> result = new HashMap<>(); + try { + SocialSchemeMapper socialSchemeMapper = sqlSession.getMapper(SocialSchemeMapper.class); + FundSchemeMapper fundSchemeMapper = sqlSession.getMapper(FundSchemeMapper.class); + OtherSchemeMapper otherSchemeMapper = sqlSession.getMapper(OtherSchemeMapper.class); + ICategoryMapper iCategoryMapper = sqlSession.getMapper(ICategoryMapper.class); + + Set socialSet = new HashSet<>(); + Set fundSet = new HashSet<>(); + Set otherSet = new HashSet<>(); + insuranceArchivesEmployeePOS.forEach(item -> { + InsuranceArchivesSocialSchemePO socialItem = socialSchemeMapper.getSocialByEmployeeId(Collections.singletonList(item.getEmployeeId())).get(0); + InsuranceArchivesFundSchemePO fundItem = fundSchemeMapper.getFundByEmployeeId(Collections.singletonList(item.getEmployeeId())).get(0); + InsuranceArchivesOtherSchemePO otherItem = otherSchemeMapper.getOtherByEmployeeId(Collections.singletonList(item.getEmployeeId())).get(0); + if (socialItem != null) { + Map socialJson = JSON.parseObject(socialItem.getSocialPaymentBaseString(), new TypeReference>() { + }); + if (socialJson != null) { + socialJson.forEach((k, v) -> socialSet.add(k)); + } + } + if (fundItem != null) { + Map fundJson = JSON.parseObject(fundItem.getFundPaymentBaseString(), new TypeReference>() { + }); + if (fundJson != null) { + fundJson.forEach((k, v) -> fundSet.add(k)); + } + } + if (otherItem != null) { + Map otherJson = JSON.parseObject(otherItem.getOtherPaymentBaseString(), new TypeReference>() { + }); + if (otherJson != null) { + otherJson.forEach((k, v) -> otherSet.add(k)); + } + } + }); + Map socialMap = new HashMap<>(); + Map socialCollect = new HashMap<>(); + Map customSocial = iCategoryMapper.listByWelfareType(WelfareTypeEnum.SOCIAL_SECURITY.getValue(),null) + .stream().collect(Collectors.toMap(ICategoryPO::getId, Function.identity())); + + Map sysSocial = iCategoryMapper.listByWelfareType(WelfareTypeEnum.SOCIAL_SECURITY.getValue(),DataTypeEnum.SYSTEM.getValue()) + .stream().collect(Collectors.toMap(ICategoryPO::getId, Function.identity())); + + socialCollect.putAll(customSocial); + socialCollect.putAll(sysSocial); + socialSet.forEach(item -> { + if (socialCollect.containsKey(Long.valueOf(item))) { + socialMap.put(item, socialCollect.get(Long.valueOf(item)).getInsuranceName() + "申报基数"); + } + }); + Map fundMap = new HashMap<>(); + Map fundCollect = new HashMap<>(); + Map customFund = iCategoryMapper.listByWelfareType(WelfareTypeEnum.ACCUMULATION_FUND.getValue(),null).stream().collect(Collectors.toMap(ICategoryPO::getId, Function.identity())); + Map sysFund = iCategoryMapper.listByWelfareType(WelfareTypeEnum.ACCUMULATION_FUND.getValue(),DataTypeEnum.SYSTEM.getValue()).stream().collect(Collectors.toMap(ICategoryPO::getId, Function.identity())); + fundCollect.putAll(customFund); + fundCollect.putAll(sysFund); + fundSet.forEach(item -> { + if (fundCollect.containsKey(Long.valueOf(item))) { + fundMap.put(item, fundCollect.get(Long.valueOf(item)).getInsuranceName() + "申报基数"); + } + }); + Map otherMap = new HashMap<>(); + Map otherCollect = new HashMap<>(); + Map customOther = iCategoryMapper.listByWelfareType(WelfareTypeEnum.OTHER.getValue(),null).stream().collect(Collectors.toMap(ICategoryPO::getId, Function.identity())); + Map sysOther = iCategoryMapper.listByWelfareType(WelfareTypeEnum.OTHER.getValue(),DataTypeEnum.SYSTEM.getValue()).stream().collect(Collectors.toMap(ICategoryPO::getId, Function.identity())); + otherCollect.putAll(customOther); + otherCollect.putAll(sysOther); + otherSet.forEach(item -> { + if (otherCollect.containsKey(Long.valueOf(item))) { + otherMap.put(item, otherCollect.get(Long.valueOf(item)).getInsuranceName() + "申报基数"); + } + }); + + result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialMap); + result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundMap); + result.put(WelfareTypeEnum.OTHER.getValue(), otherMap); + return result; + }finally { + sqlSession.close(); + } + + + } + + + /** + * + * @param param + * @param insuranceArchivesEmployeePOS + * @return + */ + private List> buildTableData(InsuranceArchivesListParam param, List insuranceArchivesEmployeePOS) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + List> records = new ArrayList<>(); + try { + SocialSchemeMapper socialSchemeMapper = sqlSession.getMapper(SocialSchemeMapper.class); + FundSchemeMapper fundSchemeMapper = sqlSession.getMapper(FundSchemeMapper.class); + OtherSchemeMapper otherSchemeMapper = sqlSession.getMapper(OtherSchemeMapper.class); + InsuranceSchemeMapper insuranceSchemeMapper = sqlSession.getMapper(InsuranceSchemeMapper.class); + + List employeeIds = insuranceArchivesEmployeePOS.stream().map(InsuranceArchivesEmployeePO::getEmployeeId).collect(Collectors.toList()); + Map socialSchemePOMap = socialSchemeMapper.getSocialByEmployeeId(employeeIds) + .stream().collect(Collectors.toMap(InsuranceArchivesSocialSchemePO::getEmployeeId, Function.identity())); + + Map fundSchemePOMap = fundSchemeMapper.getFundByEmployeeId(employeeIds) + .stream().collect(Collectors.toMap(InsuranceArchivesFundSchemePO::getEmployeeId, Function.identity())); + Map otherSchemePOMap = otherSchemeMapper.getOtherByEmployeeId(employeeIds) + .stream().collect(Collectors.toMap(InsuranceArchivesOtherSchemePO::getEmployeeId, Function.identity())); + insuranceArchivesEmployeePOS.forEach(item -> { + InsuranceArchivesSocialSchemePO socialItem = socialSchemePOMap.get(item.getEmployeeId()); + InsuranceArchivesFundSchemePO fundItem = fundSchemePOMap.get(item.getEmployeeId()); + InsuranceArchivesOtherSchemePO otherItem = otherSchemePOMap.get(item.getEmployeeId()); + Map map = new HashMap<>(); + map.put("employeeName", item.getUserName()); + map.put("employeeId", item.getEmployeeId()); + map.put("departmentName", item.getDepartmentName()); + map.put("departmentId", item.getDepartmentId()); + map.put("jobNum", item.getJobNum()); + map.put("mobile", item.getTelephone()); + map.put("status", item.getUserStatus() == null ? "" : item.getUserStatus().getDescription()); + if (socialItem != null) { + map.put("socialName", insuranceSchemeMapper.querySchemeName(socialItem.getSocialSchemeId())); + Map socialJson = JSON.parseObject(socialItem.getSocialPaymentBaseString(), new TypeReference>() { + }); + if (socialJson != null) { + SalaryEntityUtil.thousandthConvert(socialJson, map); + } + map.put("socialAccount", socialItem.getSocialAccount()); + map.put("socialStartTime", socialItem.getSocialStartTime()); + map.put("socialEndTime", socialItem.getSocialEndTime()); + } + if (fundItem != null) { + map.put("fundName", insuranceSchemeMapper.querySchemeName(fundItem.getFundSchemeId())); + map.put("fundAccount", fundItem.getFundAccount()); + Map fundJson = JSON.parseObject(fundItem.getFundPaymentBaseString(), new TypeReference>() { + }); + if (fundJson != null) { + SalaryEntityUtil.thousandthConvert(fundJson, map); + } + map.put("supplementFundAccount", fundItem.getSupplementFundAccount()); + map.put("fundStartTime", fundItem.getFundStartTime()); + map.put("fundEndTime", fundItem.getFundEndTime()); + + } + if (otherItem != null) { + map.put("otherName", insuranceSchemeMapper.querySchemeName(otherItem.getOtherSchemeId())); + Map otherJson = JSON.parseObject(otherItem.getOtherPaymentBaseString(), new TypeReference>() { + }); + if (otherJson != null) { + SalaryEntityUtil.thousandthConvert(otherJson, map); + } + map.put("otherStartTime", otherItem.getOtherStartTime()); + map.put("otherEndTime", otherItem.getOtherEndTime()); + } + records.add(map); + }); + return records; + + }finally { + sqlSession.close(); + } + } } diff --git a/src/com/engine/salary/biz/SISchemeBiz.java b/src/com/engine/salary/biz/SISchemeBiz.java index 431944bac..042e0da33 100644 --- a/src/com/engine/salary/biz/SISchemeBiz.java +++ b/src/com/engine/salary/biz/SISchemeBiz.java @@ -36,7 +36,7 @@ import java.util.stream.Collectors; * @Date 2022/3/7 * @Version V1.0 **/ -public class SISchemeBiz { +public class SISchemeBiz { /** @@ -129,7 +129,7 @@ public class SISchemeBiz { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { ICategoryMapper iCategoryMapper = sqlSession.getMapper(ICategoryMapper.class); - List insuranceCategoryPOS = iCategoryMapper.listByWelfareType(welfareType); + List insuranceCategoryPOS = iCategoryMapper.listByWelfareType(welfareType,null); return insuranceCategoryPOS; } finally { sqlSession.close(); diff --git a/src/com/engine/salary/common/BaseQueryParam.java b/src/com/engine/salary/common/BaseQueryParam.java new file mode 100644 index 000000000..5af5ca205 --- /dev/null +++ b/src/com/engine/salary/common/BaseQueryParam.java @@ -0,0 +1,22 @@ +package com.engine.salary.common; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author weaver_cl + * @Description: TODO 基础查询参数 + * @Date 2022/3/17 + * @Version V1.0 + **/ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class BaseQueryParam { + //当前页码 + private Long current = 1L; + + //每页数据条数 + private Long pageSize = 10L; +} diff --git a/src/com/engine/salary/demo/DemoPageCmd.java b/src/com/engine/salary/demo/DemoPageCmd.java index 6afdabd51..456db9709 100644 --- a/src/com/engine/salary/demo/DemoPageCmd.java +++ b/src/com/engine/salary/demo/DemoPageCmd.java @@ -1,5 +1,8 @@ package com.engine.salary.demo; +import com.cloudstore.eccom.pc.table.WeaTable; +import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; import com.engine.core.interceptor.CommandContext; @@ -10,9 +13,7 @@ import org.apache.ibatis.session.SqlSession; import weaver.conn.mybatis.MyBatisFactory; import weaver.hrm.User; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; public class DemoPageCmd extends AbstractCommonCommand> { @@ -36,6 +37,21 @@ public class DemoPageCmd extends AbstractCommonCommand> { List page = mapper.page(); PageInfo pageInfo = new PageInfo<>(page, DemoPo.class); apidatas.put("pageInfo", pageInfo); + + + + WeaTable weaTable = new WeaTable(); + List weaTableColumns = Arrays.asList(new WeaTableColumn("10%","主键","id"), + new WeaTableColumn("10%","姓名","name")); + weaTable.setSqlwhere("select * from hrsa_tax_rate_base"); + weaTable.setColumns(weaTableColumns); + + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(weaTable.makeDataResult()); + result.success(); + apidatas.put("columns",weaTableColumns); + apidatas.put("datakey",result.getResultMap()); + } finally { sqlSession.close(); } diff --git a/src/com/engine/salary/demo/DemoPo.java b/src/com/engine/salary/demo/DemoPo.java index 25735623a..1d15329d3 100644 --- a/src/com/engine/salary/demo/DemoPo.java +++ b/src/com/engine/salary/demo/DemoPo.java @@ -5,8 +5,8 @@ import lombok.Data; @Data public class DemoPo { - @TableTitle(title = "序号", key = "id", dataIndex = "id") + //@TableTitle(title = "序号", key = "id", dataIndex = "id") Long id; - @TableTitle(title = "名称", key = "name", dataIndex = "name") + //@TableTitle(title = "名称", key = "name", dataIndex = "name") String name; } diff --git a/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java new file mode 100644 index 000000000..8888365c5 --- /dev/null +++ b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesListParam.java @@ -0,0 +1,93 @@ +package com.engine.salary.entity.siarchives.param; + +import com.engine.salary.common.BaseQueryParam; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @Author weaver_cl + * @Description: TODO 高级查询档案列表 + * @Date 2022/3/17 + * @Version V1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InsuranceArchivesListParam extends BaseQueryParam { + //姓名 + private String userName; + + //工号") + private String jobNum; + + //部门(多选)") + private List departmentIds; + + //状态(多线)") + private List statuses; + + //岗位(多选)") + private List positions; + + //入职时间") + private Date[] hireDate; + + //离职时间") + private Date[] dimissionDate; + + //入职开始时间") + private Date hiredateStart; + + //入职结束时间") + private Date hiredateEnd; + + //离职开始时间") + private Date dimissionDateStart; + + //离职结束时间") + private Date dimissionDateEnd; + + //社保方案id") + private Long siSchemeId; + + //公积金方案id") + private Long fundSchemeId; + + //其他福利方案id") + private Long otherSchemeId; + + //导出档案员工id集合") + private List employeeIds; + + //分页起始索引") + private Long startNum; + + + //快捷搜索") + private String keyword; + + //快捷搜索和高级搜索标识") + private String dataSource; + + //是否导出原有数据") + private Boolean exportData; + + //是否导出所有核酸异常数据") + private Boolean inspectAll; + + //主键id集合") + private List ids; + + //账单月份") + private String billMonth; + + //是否导出模板") + private Boolean templateFlag; +} diff --git a/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java new file mode 100644 index 000000000..b8897a814 --- /dev/null +++ b/src/com/engine/salary/entity/siarchives/po/InsuranceArchivesEmployeePO.java @@ -0,0 +1,48 @@ +package com.engine.salary.entity.siarchives.po; + +import com.engine.salary.enums.UserStatus; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/3/17 + * @Version V1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InsuranceArchivesEmployeePO { + private Long employeeId;//员工id + + private String userName; + + private BigDecimal departmentId; + + private String jobNum; + + private String telephone; + + private String departmentName; + + private BigDecimal position; + + private UserStatus userStatus; + + private Date hiredate; + + private Date dimissionDate; + + private Long siSchemeId; + + private Long fundSchemeId; + + private Long otherSchemeId; +} diff --git a/src/com/engine/salary/enums/UserStatus.java b/src/com/engine/salary/enums/UserStatus.java new file mode 100644 index 000000000..6b22f6403 --- /dev/null +++ b/src/com/engine/salary/enums/UserStatus.java @@ -0,0 +1,44 @@ +package com.engine.salary.enums; + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/3/17 + * @Version V1.0 + * The trial + * A formal + * temporary + * Try to postpone the + * fire + * departure + * retired + * invalid + **/ +public enum UserStatus { + + TRIAL(0,"试用"), + FORMAL(1,"正式"), + TEMPORARY(2,"临时"), + DELAY(3,"试用延期"), + FIRE(4,"解雇"), + DEPARTURE(5,"离职"), + RETIRED(6,"退休"), + INVALID(7,"无效"); + + private Integer value; + private String description; + + + UserStatus(Integer value, String description) { + this.value = value; + this.description = description; + } + + public String getDescription() { + return this.description; + } + + public Integer getValue() { + return value; + } +} diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java index 89837bb28..f095aef3a 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java @@ -19,7 +19,7 @@ public interface FundSchemeMapper { * @param employeeId * @return */ - InsuranceArchivesFundSchemePO getFundByEmployeeId(@Param("employeeId")Long employeeId); + List getFundByEmployeeId(@Param("employeeIds")List employeeId); /** * 批量删除 diff --git a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml index 4e649886b..30f6cc512 100644 --- a/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml @@ -43,12 +43,16 @@ - + diff --git a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java index 02e626ace..0d86d4af3 100644 --- a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java @@ -19,7 +19,7 @@ public interface OtherSchemeMapper { * @param employeeId * @return */ - InsuranceArchivesOtherSchemePO getOtherByEmployeeId(@Param("employeeId")Long employeeId); + List getOtherByEmployeeId(@Param("employeeIds")List employeeId); /** * 批量删除 diff --git a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml index 03d8d6ed6..22b141c50 100644 --- a/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml @@ -41,12 +41,16 @@ - + diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java index cb4c9b32a..31dbfd490 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java @@ -1,5 +1,7 @@ package com.engine.salary.mapper.siarchives; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesEmployeePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; import org.apache.ibatis.annotations.Param; @@ -19,7 +21,7 @@ public interface SocialSchemeMapper { * @param employeeId * @return */ - InsuranceArchivesSocialSchemePO getSocialByEmployeeId(@Param("employeeId")Long employeeId); + List getSocialByEmployeeId(@Param("employeeIds")List employeeId); /** * 批量删除 @@ -32,4 +34,11 @@ public interface SocialSchemeMapper { * @param singletonList */ void batchSave(@Param("socialSchemePOS") List singletonList); + + /** + * + * @param param + * @return + */ + List listPageEmployeePOS(@Param("param") InsuranceArchivesListParam param); } diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml index 5f3b4afed..8b1f6583d 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml @@ -41,12 +41,16 @@ - + @@ -176,7 +180,99 @@ + + + + + + AND + ( + a.lastname like CONCAT('%',#{param.keyword},'%') + OR a.workcode like CONCAT('%',#{param.keyword},'%') + ) + + + + + AND + ( + e.lastname like '%'||#{param.keyword}||'%' + OR e.workcode like '%'||#{param.keyword}||'%' + ) + + + + + AND + ( + e.lastname like '%'+#{param.keyword}+'%' + OR e.workcode like '%'+#{param.keyword}+'%' + ) + + + + + + + AND a.departmentid IN + + #{departmentId} + + + + + AND a.status IN + + #{status} + + + + + AND a.jobtitle IN + + #{position} + + + + + AND a.companystartdate between #{param.hiredateStart} and #{param.hiredateEnd} + + + + AND f.dismissdate between #{param.dimissionDateStart} and #{param.dimissionDateEnd} + + + + AND c.social_scheme_id = #{param.siSchemeId} + + + AND d.fund_scheme_id = #{param.fundSchemeId} + + + AND e.other_scheme_id = #{param.otherSchemeId} + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/sicategory/ICategoryMapper.java b/src/com/engine/salary/mapper/sicategory/ICategoryMapper.java index dd4877f17..d19afd3fa 100644 --- a/src/com/engine/salary/mapper/sicategory/ICategoryMapper.java +++ b/src/com/engine/salary/mapper/sicategory/ICategoryMapper.java @@ -64,5 +64,6 @@ public interface ICategoryMapper { * * @return */ - List listByWelfareType(@Param("welfareType") Integer welfareType); + List listByWelfareType(@Param("welfareType") Integer welfareType, + @Param("dataType") Integer dataType); } diff --git a/src/com/engine/salary/mapper/sicategory/ICategoryMapper.xml b/src/com/engine/salary/mapper/sicategory/ICategoryMapper.xml index daaa79aa7..ac1551c1c 100644 --- a/src/com/engine/salary/mapper/sicategory/ICategoryMapper.xml +++ b/src/com/engine/salary/mapper/sicategory/ICategoryMapper.xml @@ -30,6 +30,11 @@ , t.tenant_key + + + AND data_type = #{dataType} + + + + diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.java b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.java index 3786d2260..3bee638f3 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.java +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.java @@ -1,6 +1,7 @@ package com.engine.salary.mapper.sischeme; import com.engine.salary.entity.sischeme.po.InsuranceSchemePO; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -48,4 +49,10 @@ public interface InsuranceSchemeMapper { List listAll(); + /** + * 获取名称 + * @param schemeId + * @return + */ + String querySchemeName(@Param("schemeId") Long schemeId); } diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.xml b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.xml index 9f61ec331..25eb20730 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.xml +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeMapper.xml @@ -41,6 +41,15 @@ WHERE id = #{id} AND delete_type = 0 + + + +