diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index fe1dd4ff3..3fe2a0ef3 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -2,6 +2,7 @@ package com.engine.salary.biz; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; +import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryacct.dto.SalaryAcctProgressDTO; @@ -10,10 +11,7 @@ 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.siarchives.po.InsuranceArchivesAccountPO; -import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; -import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; -import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; +import com.engine.salary.entity.siarchives.po.*; import com.engine.salary.entity.sicategory.po.ICategoryPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; import com.engine.salary.enums.siaccount.*; @@ -24,8 +22,12 @@ import com.engine.salary.mapper.siaccount.InsuranceAccountBatchMapper; import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper; import com.engine.salary.mapper.siaccount.InsuranceAccountInspectMapper; import com.engine.salary.mapper.siaccount.SIAccountDetailTempMapper; +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.mapper.sischeme.InsuranceSchemeMapper; import com.engine.salary.util.SalaryAssert; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; @@ -33,6 +35,7 @@ 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.PageUtil; +import com.kingbase8.util.LOGGER; import dm.jdbc.util.IdGenerator; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -1254,6 +1257,53 @@ public class SIAccountBiz { // insuranceSchemeContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 100506, "台账归档")); // insuranceSchemeContext.setNewValues(insuranceAccountBatchPO); // siAccountLoggerTemplate.write(insuranceSchemeContext); - } + + + public void accountInspect(Collection ids, String billMonth, Long employeeId) { + List insuranceAccountInspectPOS = allInspects(ids, billMonth); + SalaryAssert.notEmpty(insuranceAccountInspectPOS, SalaryI18nUtil.getI18nLabel( 100515, "无核算数据")); + List commonInspects = insuranceAccountInspectPOS.stream() + .filter(e -> Objects.equals(e.getPaymentStatus(), PaymentStatusEnum.COMMON.getValue())) + .collect(Collectors.toList()); + List supplementInspects = insuranceAccountInspectPOS.stream() + .filter(e -> Objects.equals(e.getPaymentStatus(), PaymentStatusEnum.REPAIR.getValue())) + .collect(Collectors.toList()); + //核算正常缴纳 + if (CollectionUtils.isNotEmpty(commonInspects)) { + SaveCommonAccountParam param = new SaveCommonAccountParam(); + param.setBillMonth(billMonth); + param.setIncludes(commonInspects.stream().map(InsuranceAccountInspectPO::getEmployeeId).collect(Collectors.toList())); + saveCommonAccount(param, employeeId); + } + //核算补缴 + if (CollectionUtils.isNotEmpty(supplementInspects)) { + List baseList = new ArrayList<>(); + supplementInspects.forEach(e -> { + SupplementAccountBaseParam base = new SupplementAccountBaseParam(); + base.setBillMonth(billMonth); + base.setProjects( + e.getSupplementaryProjects() == null ? null : Arrays.stream(e.getSupplementaryProjects().split(",")).map(Integer::valueOf).collect(Collectors.toList())); + base.setEmployeeId(e.getEmployeeId()); + base.setSupplementaryMonth(e.getSupplementaryMonth()); + baseList.add(base); + }); + accountSupplement(baseList, baseList.stream().map(SupplementAccountBaseParam::getEmployeeId).collect(Collectors.toList()), billMonth,employeeId); + } + } + + + public List allInspects(Collection ids, String billMonth) { + List list = MapperProxyFactory.getProxy(InsuranceAccountInspectMapper.class).getList(billMonth,InspectStatusEnum.IGNORE.getValue(),ids); + + if (CollectionUtils.isNotEmpty(list)) { + return list; + } + return Collections.emptyList(); + } + + + + + } diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index 33a2a0fcf..00cb9d3af 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -612,7 +612,7 @@ public class SIArchivesBiz { PageUtil.start(param.getCurrent(), param.getPageSize()); List page = socialSchemeMapper.listPageEmployeePOS(param); PageInfo pageInfo = new PageInfo<>(page, InsuranceArchivesEmployeePO.class); - List> records = buildTableData(param, page); + List> records = buildTableData(page); List columns = buildWeaTableColumns(page, operateId); WeaTable table = new WeaTable(); @@ -647,7 +647,7 @@ public class SIArchivesBiz { * @param operateId * @return */ - private List buildWeaTableColumns(List insuranceArchivesEmployeePOS, long operateId) { + public List buildWeaTableColumns(List insuranceArchivesEmployeePOS, long operateId) { Map> titleMap = buildColumnTitle(insuranceArchivesEmployeePOS, operateId); List list = new ArrayList<>(); WeaTableColumn nameColumn = new WeaTableColumn( "100px","姓名", "employeeName" ); @@ -773,12 +773,10 @@ public class SIArchivesBiz { /** - * - * @param param * @param insuranceArchivesEmployeePOS * @return */ - private List> buildTableData(InsuranceArchivesListParam param, List insuranceArchivesEmployeePOS) { + public List> buildTableData(List insuranceArchivesEmployeePOS) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); List> records = new ArrayList<>(); try { diff --git a/src/com/engine/salary/entity/siaccount/param/InspectAccountParam.java b/src/com/engine/salary/entity/siaccount/param/InspectAccountParam.java index 47deeca74..7b2e6bc27 100644 --- a/src/com/engine/salary/entity/siaccount/param/InspectAccountParam.java +++ b/src/com/engine/salary/entity/siaccount/param/InspectAccountParam.java @@ -1,6 +1,7 @@ package com.engine.salary.entity.siaccount.param; +import com.engine.salary.util.valid.DataCheck; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -21,7 +22,7 @@ import java.util.List; public class InspectAccountParam { //核算异常主键id") - //@NotNull + @DataCheck(require = true,message = "主键不能为空") private List ids; //账单月份") diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java index f858c4951..c9f5dbce1 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java +++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.java @@ -3,6 +3,7 @@ package com.engine.salary.mapper.siaccount; 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 org.apache.ibatis.annotations.Param; import java.util.Collection; @@ -81,4 +82,9 @@ public interface InsuranceAccountDetailMapper { void batchIgnoreInspectDetails(@Param("ids") Collection ids); + + + List changeList(@Param("userName") String userName, @Param("startNum") Integer startNum, + @Param("pageSize") Integer pageSize); + } diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml index e8aa31111..132b4035a 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml +++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMapper.xml @@ -384,5 +384,513 @@ + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountInspectMapper.java b/src/com/engine/salary/mapper/siaccount/InsuranceAccountInspectMapper.java index 59b93a602..1ec90eb4f 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountInspectMapper.java +++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountInspectMapper.java @@ -38,6 +38,7 @@ public interface InsuranceAccountInspectMapper { List getByInspectStatusAndIds(@Param("inspectStatus")Integer inspectStatus,@Param("ids")Collection ids); + List getList(@Param("billMonth")String billMonth,@Param("inspectStatus")Integer inspectStatus,@Param("ids")Collection ids); - + List getByBillMonth(@Param("billMonth")String billMonth); } diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceAccountInspectMapper.xml b/src/com/engine/salary/mapper/siaccount/InsuranceAccountInspectMapper.xml index 8f2f94327..f15695346 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceAccountInspectMapper.xml +++ b/src/com/engine/salary/mapper/siaccount/InsuranceAccountInspectMapper.xml @@ -49,6 +49,7 @@ #{id} + + + + + + UPDATE hrsa_bill_inspect diff --git a/src/com/engine/salary/service/ColumnBuildService.java b/src/com/engine/salary/service/ColumnBuildService.java index d633481b4..1faeaa3e5 100644 --- a/src/com/engine/salary/service/ColumnBuildService.java +++ b/src/com/engine/salary/service/ColumnBuildService.java @@ -23,8 +23,8 @@ public interface ColumnBuildService { */ List buildCommonColumnsWithStyle(List pos, Long employeeId, String tenantKey, boolean flag); - List buildCommonColumns(List pos, Long employeeId, String tenantKey); + List buildCommonColumns(List pos); - List buildInspectColumns(List pos, Long employeeId, String tenantKey); + List buildInspectColumns(List pos); } diff --git a/src/com/engine/salary/service/SIAccountService.java b/src/com/engine/salary/service/SIAccountService.java index 0eb66576a..56757f00c 100644 --- a/src/com/engine/salary/service/SIAccountService.java +++ b/src/com/engine/salary/service/SIAccountService.java @@ -130,5 +130,23 @@ public interface SIAccountService { * @param billMonth */ InsuranceAccountTabDTO tabList(String billMonth); + + /** + * 人员异动 + * @param insuranceAccountDetailParam + */ + Map changeList(InsuranceAccountDetailParam insuranceAccountDetailParam); + + /** + * 核算核算异常,重新核算 + * @param inspectAccountParam + */ + void accountInspect(InspectAccountParam inspectAccountParam); + + /** + * 核算失败列表 + * @param param + */ + Map getInspectTable(InsuranceAccountDetailParam param); } diff --git a/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java b/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java index 5a99b82c6..a1ccda24c 100644 --- a/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java +++ b/src/com/engine/salary/service/impl/ColumnBuildServiceImpl.java @@ -3,8 +3,14 @@ package com.engine.salary.service.impl; import com.alibaba.fastjson.JSON; import com.cloudstore.eccom.constant.WeaBoolAttr; import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.engine.salary.biz.SIArchivesBiz; +import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; import com.engine.salary.entity.siaccount.po.InsuranceAccountInspectPO; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesAccountPO; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; import com.engine.salary.entity.sicategory.po.ICategoryPO; import com.engine.salary.enums.sicategory.WelfareTypeEnum; import com.engine.salary.mapper.sicategory.ICategoryMapper; @@ -252,12 +258,96 @@ public class ColumnBuildServiceImpl extends Service implements ColumnBuildServic @Override - public List buildCommonColumns(List pos, Long employeeId, String tenantKey) { + public List buildCommonColumns(List pos) { return null; } @Override - public List buildInspectColumns(List pos, Long employeeId, String tenantKey) { - return null; + public List buildInspectColumns(List pos) { + List list = new ArrayList<>(); + SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); + List employeeIds = pos.stream().map(InsuranceAccountInspectPO::getEmployeeId).collect(Collectors.toList()); + Map insuranceArchivesAccountPOMap = siArchivesBiz.buildBatchAccount(employeeIds, SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY); + Map categoryIdNameMap = MapperProxyFactory.getProxy(ICategoryMapper.class).listAll().stream().collect(Collectors.toMap(ICategoryPO -> String.valueOf(ICategoryPO.getId()), ICategoryPO::getInsuranceName)); + Map> columns = buildInspectTableTitle(new ArrayList<>(insuranceArchivesAccountPOMap.values()), categoryIdNameMap); + WeaTableColumn weaTableNameColumn = new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 85429, "姓名"), "userName"); + weaTableNameColumn.setFixed("left"); + WeaTableColumn idColumn = new WeaTableColumn("150px", "id", "id"); + idColumn.setIsPrimarykey(WeaBoolAttr.TRUE); + idColumn.setDisplay(WeaBoolAttr.FALSE); + list.add(idColumn); + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 86185, "部门"), "department")); + list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(86186, "手机号"), "mobile")); + list.add(new WeaTableColumn("150px", SalaryI18nUtil.getI18nLabel(86187, "员工状态"), "employeeStatus")); + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 100544, "缴纳情况"), "supplementaryMonth")); + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91323, "社保方案名称"), "socialSchemeName")); + //组装社保基数 + columns.get(WelfareTypeEnum.SOCIAL_SECURITY.getValue()).forEach((k, v) -> { + list.add(new WeaTableColumn("150px",k, v)); + }); + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91485, "公积金方案名称"), "fundSchemeName")); + //组装公积金基数 + columns.get(WelfareTypeEnum.ACCUMULATION_FUND.getValue()).forEach((k, v) -> { + list.add(new WeaTableColumn("150px",k, v)); + }); + list.add(new WeaTableColumn("150px",SalaryI18nUtil.getI18nLabel( 91496, "其他福利方案名称"), "otherSchemeName")); + columns.get(WelfareTypeEnum.OTHER.getValue()).forEach((k, v) -> { + list.add(new WeaTableColumn("150px",k, v)); + }); + return list; + } + + private Map> buildInspectTableTitle(List pos, Map categoryIdNameMap + ) { + Set socailIds = new HashSet<>(); + Set fundIds = new HashSet<>(); + Set otherIds = new HashSet<>(); + Map> result = new HashMap<>(); + + pos.stream().forEach(item -> { + InsuranceArchivesSocialSchemePO social = item.getSocial(); + if (social != null && StringUtils.isNotBlank(social.getSocialPaymentBaseString())) { + Map socialJson = JSON.parseObject(social.getSocialPaymentBaseString(), new HashMap().getClass()); + socialJson.forEach((k, v) -> { + socailIds.add(k); + }); + } + InsuranceArchivesFundSchemePO fund = item.getFund(); + if (fund != null && StringUtils.isNotBlank(fund.getFundPaymentBaseString())) { + Map fundJson = JSON.parseObject(fund.getFundPaymentBaseString(), new HashMap().getClass()); + fundJson.forEach((k, v) -> { + fundIds.add(k); + }); + } + InsuranceArchivesOtherSchemePO other = item.getOther(); + if (other != null && StringUtils.isNotBlank(other.getOtherPaymentBaseString())) { + Map otherJson = JSON.parseObject(other.getOtherPaymentBaseString(), new HashMap().getClass()); + otherJson.forEach((k, v) -> { + otherIds.add(k); + }); + } + }); + Map socialColumns = new HashMap<>(); + Map fundColumns = new HashMap<>(); + Map otherColumns = new HashMap<>(); + socailIds.stream().forEach(social -> { + if (categoryIdNameMap.containsKey(social)) { + socialColumns.put(categoryIdNameMap.get(social) + SalaryI18nUtil.getI18nLabel( 100293, "申报基数"), social + "socialBase"); + } + }); + fundIds.stream().forEach(social -> { + if (categoryIdNameMap.containsKey(social)) { + fundColumns.put(categoryIdNameMap.get(social) + SalaryI18nUtil.getI18nLabel( 100293, "申报基数"), social + "fundBase"); + } + }); + otherIds.stream().forEach(social -> { + if (categoryIdNameMap.containsKey(social)) { + otherColumns.put(categoryIdNameMap.get(social) + SalaryI18nUtil.getI18nLabel( 100293, "申报基数"), social + "otherBase"); + } + }); + result.put(WelfareTypeEnum.SOCIAL_SECURITY.getValue(), socialColumns); + result.put(WelfareTypeEnum.ACCUMULATION_FUND.getValue(), fundColumns); + result.put(WelfareTypeEnum.OTHER.getValue(), otherColumns); + return result; } } diff --git a/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java b/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java index 8d0f4ac71..a16661468 100644 --- a/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java +++ b/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java @@ -1,9 +1,15 @@ package com.engine.salary.service.impl; import com.alibaba.fastjson.JSON; +import com.engine.salary.biz.SIArchivesBiz; +import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; import com.engine.salary.entity.siaccount.po.InsuranceAccountInspectPO; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesAccountPO; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; import com.engine.salary.entity.taxrate.TaxAgent; import com.engine.salary.enums.siaccount.BillStatusEnum; import com.engine.salary.enums.siaccount.ResourceFromEnum; @@ -12,18 +18,14 @@ import com.engine.salary.mapper.datacollection.EmployMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper; import com.engine.salary.service.RecordsBuildService; import com.engine.core.impl.Service; -import com.engine.salary.util.SalaryAssert; -import com.engine.salary.util.SalaryEntityUtil; -import com.engine.salary.util.SalaryEnumUtil; -import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.*; import com.engine.salary.util.db.MapperProxyFactory; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -48,7 +50,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ } List paymentList = MapperProxyFactory.getProxy(TaxAgentMapper.class).listAll(); - SalaryAssert.notEmpty(paymentList, SalaryI18nUtil.getI18nLabel( 100341, "暂无扣缴义务人")); + SalaryAssert.notEmpty(paymentList, SalaryI18nUtil.getI18nLabel(100341, "暂无扣缴义务人")); Map paymentMap = paymentList.stream().collect(Collectors.toMap(TaxAgent::getId, Function.identity())); Map collect = employeeByIds.stream().collect(Collectors.toMap(DataCollectionEmployee::getEmployeeId, Function.identity())); list.forEach(item -> { @@ -153,6 +155,77 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ @Override public List> buildInspectRecords(List list) { - return null; + List> result = new ArrayList<>(); + SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); + if (CollectionUtils.isEmpty(list)) { + return result; + } + List employeeIds = list.stream().map(InsuranceAccountInspectPO::getEmployeeId).collect(Collectors.toList()); + List employeeByIds = MapperProxyFactory.getProxy(EmployMapper.class).getEmployeeByIdsAll(employeeIds); + if (CollectionUtils.isEmpty(employeeByIds)) { + return result; + } + Map collect = employeeByIds.stream().collect(Collectors.toMap(DataCollectionEmployee::getEmployeeId, Function.identity())); + Map insuranceArchivesAccountPOMap = siArchivesBiz.buildBatchAccount(employeeIds, SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY); + list.forEach(item -> { + Map record = new HashMap<>(); + DataCollectionEmployee simpleEmployee = collect.get(item.getEmployeeId()) == null ? new DataCollectionEmployee() : collect.get(item.getEmployeeId()); + InsuranceArchivesAccountPO insuranceAccountInspectPO = insuranceArchivesAccountPOMap.get(item.getEmployeeId()); + record.put("id", item.getId()); + record.put("employeeId", item.getEmployeeId()); + record.put("billMonth", item.getBillMonth()); + record.put("userName", simpleEmployee.getUsername()); + record.put("inspectStatus", item.getInspectStatus()); + record.put("department", simpleEmployee.getDepartmentName()); + record.put("supplementaryMonth", timeFormat(item.getSupplementaryMonth())); + record.put("mobile", simpleEmployee.getMobile()); + record.put("employeeStatus", simpleEmployee.getStatus()); + InsuranceArchivesSocialSchemePO social = insuranceAccountInspectPO.getSocial(); + if (social != null) { + record.put("socialSchemeName", MapperProxyFactory.getProxy(InsuranceSchemeMapper.class).querySchemeName(social.getSocialSchemeId())); + if (StringUtils.isNotEmpty(social.getSocialPaymentBaseString())) { + Map socialJson = JSON.parseObject(social.getSocialPaymentBaseString(), new HashMap().getClass()); + socialJson.forEach((k, v) -> { + record.put(k + "socialBase", SalaryEntityUtil.thousandthConvert((String) v)); + }); + } + } + InsuranceArchivesFundSchemePO fund = insuranceAccountInspectPO.getFund(); + if (fund != null) { + record.put("fundSchemeName", MapperProxyFactory.getProxy(InsuranceSchemeMapper.class).querySchemeName(fund.getFundSchemeId())); + if (StringUtils.isNotEmpty(fund.getFundPaymentBaseString())) { + Map socialJson = JSON.parseObject(fund.getFundPaymentBaseString(), new HashMap().getClass()); + socialJson.forEach((k, v) -> { + record.put(k + "fundBase", SalaryEntityUtil.thousandthConvert((String) v)); + }); + } + } + InsuranceArchivesOtherSchemePO other = insuranceAccountInspectPO.getOther(); + if (other != null) { + record.put("otherSchemeName", MapperProxyFactory.getProxy(InsuranceSchemeMapper.class).querySchemeName(other.getOtherSchemeId())); + if (StringUtils.isNotEmpty(other.getOtherPaymentBaseString())) { + Map socialJson = JSON.parseObject(other.getOtherPaymentBaseString(), new HashMap().getClass()); + socialJson.forEach((k, v) -> { + record.put(k + "otherBase", SalaryEntityUtil.thousandthConvert((String) v)); + }); + } + } + result.add(record); + }); + return result; } -} + + + public String timeFormat(String originTime) { + if (StringUtils.isBlank(originTime) || !SalaryDateUtil.checkYearMonth(originTime)) { + return null; + } + Date date = null; + try { + date = new SimpleDateFormat("yyyy-MM").parse(originTime); + } catch (ParseException e) { + //log.error("time format error", e); + } + return new SimpleDateFormat(SalaryI18nUtil.getI18nLabel(100519, "补缴yyyy年MM月")).format(date); + } +} \ No newline at end of file diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 7e7b2cc5f..fc22ea9dc 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -2,11 +2,12 @@ package com.engine.salary.service.impl; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; -import com.cloudstore.eccom.pc.table.WeaTableColumn; +import com.cloudstore.eccom.pc.table.*; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.SIAccountBiz; +import com.engine.salary.biz.SIArchivesBiz; import com.engine.salary.component.SalaryWeaTable; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; @@ -18,6 +19,8 @@ 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.InsuranceAccountInspectPO; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesEmployeePO; +import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.siaccount.BillStatusEnum; import com.engine.salary.enums.siaccount.InspectStatusEnum; import com.engine.salary.enums.siaccount.PaymentStatusEnum; @@ -53,6 +56,8 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { private SIAccountBiz siAccountBiz = new SIAccountBiz(); + private SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); + public RecordsBuildService getService(User user) { return ServiceUtil.getService(RecordsBuildServiceImpl.class,user); } @@ -160,6 +165,9 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { return datas; } + + + @Override public Map listCommonPageByName(InsuranceAccountDetailParam queryParam) { //增加查询参数userName @@ -178,6 +186,7 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { //补缴缴纳列表 queryParam.setPaymentStatus(PaymentStatusEnum.REPAIR.getValue()); + //PageUtil.start(queryParam.getCurrent(), queryParam.getPageSize()); List list = MapperProxyFactory.getProxy(InsuranceAccountDetailMapper.class).list(queryParam); PageInfo pageInfo = new PageInfo<>(list,InsuranceAccountDetailPO.class); List insuranceAccountDetailPOS = pageInfo.getList(); @@ -206,6 +215,8 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { return datas; } + + @Override public Map supplementaryByNameList(InsuranceAccountDetailParam queryParam) { //增加查询参数userName @@ -373,5 +384,120 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { return insuranceAccountTabDTO; } + @Override + public Map changeList(InsuranceAccountDetailParam param) { + Map datas = new HashMap<>(); + Long employeeId = (long)user.getUID(); + List insuranceArchivesEmployeePOS = MapperProxyFactory.getProxy(InsuranceAccountDetailMapper.class).changeList(param.getUserName(), param.getCurrent(), param.getPageSize()); + List> records = siArchivesBiz.buildTableData(insuranceArchivesEmployeePOS); + PageInfo> pageInfos = new PageInfo<>(records); + pageInfos.setTotal(records.size()); + pageInfos.setPageNum(param.getCurrent()); + pageInfos.setPageSize(param.getPageSize()); + + List weaTableColumns = siArchivesBiz.buildWeaTableColumns(insuranceArchivesEmployeePOS, employeeId); + + WeaTable table = new WeaTable(); + table.setPageUID(UUID.randomUUID().toString()); + table.setColumns(weaTableColumns); + table.setTableType(WeaTableType.CHECKBOX); + WeaTableOperates weaTableOperates = new WeaTableOperates(); + WeaTableOperate weaTableOperate = new WeaTableOperate(); + weaTableOperate.setIndex("0"); + weaTableOperate.setText("移除"); + WeaTableOperate weaTableOperate1 = new WeaTableOperate(); + weaTableOperate1.setIndex("1"); + weaTableOperate1.setText("添加"); + table.setOperates(weaTableOperates); + + List> permissions = new ArrayList<>(); + for (int i = 0; i < records.size(); i++) { + List permission = new ArrayList<>(); + if (UserStatusEnum.DEPARTURE.getDescription().equals(records.get(i).get("status"))) { + permission.add(new Permission(true, false)); + permission.add(new Permission(false, false)); + permissions.add(permission); + } + if (UserStatusEnum.DEPARTURE.getDescription().equals(records.get(i).get("status"))) { + permission.add(new Permission(false, false)); + permission.add(new Permission(true, false)); + permissions.add(permission); + } + } + + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + + datas.put("permissions",permissions); + datas.put("pageInfo", pageInfos); + datas.put("dataKey",result.getResultMap()); + return datas; + } + + @Override + public void accountInspect(InspectAccountParam param) { + Long employeeId = (long)user.getUID(); + ValidUtil.doValidator(param); + siAccountBiz.accountInspect(param.getIds(),param.getBillMonth(),employeeId); + } + + @Override + public Map getInspectTable(InsuranceAccountDetailParam param) { + Map datas = new HashMap<>(); + + List insuranceAccountInspectPOS = MapperProxyFactory.getProxy(InsuranceAccountInspectMapper.class).getByBillMonth(param.getBillMonth()); + List> records = getService(user).buildInspectRecords(insuranceAccountInspectPOS); + + PageInfo> pageInfos = new PageInfo<>(records); + pageInfos.setTotal(records.size()); + pageInfos.setPageNum(param.getCurrent()); + pageInfos.setPageSize(param.getPageSize()); + + List weaTableColumns = getColumnBuildService(user).buildInspectColumns(insuranceAccountInspectPOS); + WeaTable table = new WeaTable(); + table.setPageUID(UUID.randomUUID().toString()); + table.setColumns(weaTableColumns); + table.setTableType(WeaTableType.CHECKBOX); + WeaTableOperates weaTableOperates = new WeaTableOperates(); + WeaTableOperate weaTableOperate = new WeaTableOperate(); + weaTableOperate.setIndex("0"); + weaTableOperate.setText("忽略"); + WeaTableOperate weaTableOperate1 = new WeaTableOperate(); + weaTableOperate1.setIndex("1"); + weaTableOperate1.setText("重置"); + table.setOperates(weaTableOperates); + + List> permissions = new ArrayList<>(); + for (int i = 0; i < records.size(); i++) { + List permission = new ArrayList<>(); + Permission permissionCheckBox = new Permission(); + if (InspectStatusEnum.IGNORE.getValue() == records.get(i).get("inspectStatus")) { + permissionCheckBox.setVisible(true); + permissionCheckBox.setDisabled(false); + permission.add(new Permission(true, false)); + permission.add(new Permission(false, true)); + permissions.add(permission); + } + if (InspectStatusEnum.COMFORED.getValue() == records.get(i).get("inspectStatus")) { + permissionCheckBox.setVisible(true); + permissionCheckBox.setDisabled(true); + permission.add(new Permission(false, true)); + permission.add(new Permission(true, false)); + permissions.add(permission); + } + } + + WeaResultMsg result = new WeaResultMsg(false); + result.putAll(table.makeDataResult()); + result.success(); + + datas.put("permissions",permissions); + datas.put("pageInfo", pageInfos); + datas.put("dataKey",result.getResultMap()); + + return datas; + } + } diff --git a/src/com/engine/salary/web/SIAccountController.java b/src/com/engine/salary/web/SIAccountController.java index 7cc76a8a6..0b624ec7a 100644 --- a/src/com/engine/salary/web/SIAccountController.java +++ b/src/com/engine/salary/web/SIAccountController.java @@ -256,15 +256,15 @@ public class SIAccountController { User user = HrmUserVarify.getUser(request, response); return new ResponseResult().run(getService(user)::file, accountParam); } -// -// @GET -// @Path("/changeList") -// @Produces(MediaType.APPLICATION_JSON) -// public String changeList(@Context HttpServletRequest request, @Context HttpServletResponse response, -// @RequestBody InsuranceAccountDetailParam insuranceAccountDetailParam) { -// User user = HrmUserVarify.getUser(request, response); -// return new ResponseResult>().run(getService(user)::changeList, insuranceAccountDetailParam); -// } + + @GET + @Path("/changeList") + @Produces(MediaType.APPLICATION_JSON) + public String changeList(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody InsuranceAccountDetailParam insuranceAccountDetailParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>().run(getService(user)::changeList, insuranceAccountDetailParam); + } // @GetMapping("overView") @@ -275,31 +275,34 @@ public class SIAccountController { // } // -// @GET -// @Path("/tabList") -// @Produces(MediaType.APPLICATION_JSON) -// public String tabList(@Context HttpServletRequest request, @Context HttpServletResponse response, -// @QueryParam("billMonth") String billMonth) { -// User user = HrmUserVarify.getUser(request, response); -// return new ResponseResult().run(getService(user)::tabList, billMonth); -// } + @GET + @Path("/tabList") + @Produces(MediaType.APPLICATION_JSON) + public String tabList(@Context HttpServletRequest request, @Context HttpServletResponse response, + @QueryParam("billMonth") String billMonth) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult().run(getService(user)::tabList, billMonth); + } + + @GET + @Path("/inspectList") + @Produces(MediaType.APPLICATION_JSON) + public String getInspectTable(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody InsuranceAccountDetailParam insuranceAccountDetailParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>().run(getService(user)::getInspectTable, insuranceAccountDetailParam); + } -// @GetMapping("inspectList") -// @ApiOperation("核算失败列表") -// @WeaPermission -// public WeaResult getInspectTable(@RequestParam(value = "billMonth") String billMonth) { -// return siAccountWrapper.getInspectTable(billMonth, UserContext.getCurrentUser().getEmployeeId(), TenantContext.getCurrentTenantKey()); -// } -// -// @PostMapping("inspectAccount") -// @ApiOperation("核算核算异常") -// @WeaPermission -// public WeaResult accountInspect(@RequestBody InspectAccountParam param) { -// return siAccountWrapper.accountInspect(param.getIds(), param.getBillMonth(), UserContext.getCurrentUser().getEmployeeId(), TenantContext.getCurrentTenantKey()); -// } -// + @POST + @Path("/inspectAccount") + @Produces(MediaType.APPLICATION_JSON) + public String accountInspect(@Context HttpServletRequest request, @Context HttpServletResponse response, + @RequestBody InspectAccountParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult().run(getService(user)::accountInspect, param); + } @POST