diff --git a/src/com/engine/salary/action/CheckEditSIArchiveAction.java b/src/com/engine/salary/action/CheckEditSIArchiveAction.java index 936a1b697..f4f8d9165 100644 --- a/src/com/engine/salary/action/CheckEditSIArchiveAction.java +++ b/src/com/engine/salary/action/CheckEditSIArchiveAction.java @@ -1,7 +1,7 @@ package com.engine.salary.action; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.siarchives.param.SIArchiveImportActionParam; +import com.engine.salary.entity.siarchives.param.SIArchiveImportParam; import com.engine.salary.service.SISchemeService; import com.engine.salary.service.impl.SISchemeServiceImpl; import com.engine.salary.util.SalaryEntityUtil; @@ -66,7 +66,7 @@ public class CheckEditSIArchiveAction implements Action { //福利执行状态 String runStatus = list.stream().filter(f -> f.salaryName.equals("档案状态")).findFirst().map(CheckEditSIArchiveAction.SalaryField::getValue).orElse("1"); - SIArchiveImportActionParam build = SIArchiveImportActionParam.builder() + SIArchiveImportParam build = SIArchiveImportParam.builder() .importDatas(importData) .runStatus(runStatus) .build(); diff --git a/src/com/engine/salary/action/EditSIArchiveAction.java b/src/com/engine/salary/action/EditSIArchiveAction.java index 1fb188ed1..22dda2d3e 100644 --- a/src/com/engine/salary/action/EditSIArchiveAction.java +++ b/src/com/engine/salary/action/EditSIArchiveAction.java @@ -1,7 +1,7 @@ package com.engine.salary.action; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.siarchives.param.SIArchiveImportActionParam; +import com.engine.salary.entity.siarchives.param.SIArchiveImportParam; import com.engine.salary.service.SISchemeService; import com.engine.salary.service.impl.SISchemeServiceImpl; import com.engine.salary.util.SalaryEntityUtil; @@ -65,7 +65,7 @@ public class EditSIArchiveAction implements Action { //福利执行状态 String runStatus = list.stream().filter(f -> f.salaryName.equals("档案状态")).findFirst().map(EditSIArchiveAction.SalaryField::getValue).orElse("1"); - SIArchiveImportActionParam build = SIArchiveImportActionParam.builder() + SIArchiveImportParam build = SIArchiveImportParam.builder() .importDatas(importData) .runStatus(runStatus) .build(); diff --git a/src/com/engine/salary/action/EditToPaySIArchiveAction.java b/src/com/engine/salary/action/EditToPaySIArchiveAction.java new file mode 100644 index 000000000..c736f9698 --- /dev/null +++ b/src/com/engine/salary/action/EditToPaySIArchiveAction.java @@ -0,0 +1,181 @@ +package com.engine.salary.action; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.siarchives.param.SIArchiveImportParam; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.siaccount.EmployeeStatusEnum; +import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; +import com.engine.salary.mapper.taxagent.TaxAgentMapper; +import com.engine.salary.service.SIArchivesService; +import com.engine.salary.service.SISchemeService; +import com.engine.salary.service.impl.SIArchivesServiceImpl; +import com.engine.salary.service.impl.SISchemeServiceImpl; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.db.MapperProxyFactory; +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.*; +import java.util.stream.Collectors; + +/** + * @Author: sy + * @Description: 编辑并增员福利档案 + * @Date: 2023/9/8 + **/ +@Slf4j +public class EditToPaySIArchiveAction implements Action { + private SISchemeService getSISchemeService(User user) { + return ServiceUtil.getService(SISchemeServiceImpl.class,user); + } + + private InsuranceBaseInfoMapper getInsuranceBaseInfoMapper() { + return MapperProxyFactory.getProxy(InsuranceBaseInfoMapper.class); + } + + private SIArchivesService getSIArchivesService(User user) { + return ServiceUtil.getService(SIArchivesServiceImpl.class,user); + } + + private TaxAgentMapper getTaxAgentMapper() { + return MapperProxyFactory.getProxy(TaxAgentMapper.class); + } + + 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 EditToPaySIArchiveAction.SalaryField(processField, salaryName, value)); + } + List> importData = new ArrayList<>(); + importData.add(SalaryEntityUtil.convert2Map(list, EditToPaySIArchiveAction.SalaryField::getSalaryName, EditToPaySIArchiveAction.SalaryField::getValue)); + //福利执行状态 + String runStatus = EmployeeStatusEnum.STAY_ADD.getValue(); + + SIArchiveImportParam build = SIArchiveImportParam.builder() + .importDatas(importData) + .runStatus(runStatus) + .build(); + + //操作人 + String uid = list.stream().filter(f -> f.salaryName.equals("操作人")).findFirst().map(EditToPaySIArchiveAction.SalaryField::getValue).orElse("1"); + //更新/新建档案数据 + Map map = getSISchemeService(new User(Integer.parseInt(uid))).addSIArchive(build); + + List errorNotice = (List) map.get("errorData"); + if (CollectionUtils.isNotEmpty(errorNotice)) { + log.error("福利档案编辑并增员存在异常 requestId:{} ,参数:{}, map:{}", requestInfo.getRequestid(), build, map); + List> excelComments = (List>) map.get("errorData"); + StringBuilder message = new StringBuilder(""); + for (Map comments : excelComments) { + message.append(comments.get("message")).append("\n"); + } + requestInfo.getRequestManager().setMessage(message.toString()); + return FAILURE_AND_CONTINUE; + } + //增员 + String taxAgentName = importData.get(0).get("个税扣缴义务人").toString(); + List taxAgentPOS = getTaxAgentMapper().listByName(taxAgentName); + if(CollectionUtils.isEmpty(taxAgentPOS)){ + requestInfo.getRequestManager().setMessage("个税扣缴义务人不存在!"); + return FAILURE_AND_CONTINUE; + } + Long taxAgentId = Long.valueOf(taxAgentPOS.get(0).getId()); + Long employeeId = Long.valueOf(list.stream().filter(f -> f.salaryName.equals("员工id")).findFirst().map(EditToPaySIArchiveAction.SalaryField::getValue).orElse("-1")); + User user = new User(Integer.parseInt(uid)); + // 获取福利档案基础信息 + InsuranceArchivesBaseInfoPO insuranceArchivesBaseInfoPO = getInsuranceBaseInfoMapper().getOneByEmployeeIdAndPayOrg(taxAgentId, employeeId); + if(insuranceArchivesBaseInfoPO == null){ + requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工不存在福利档案,请检查后重试!"); + return FAILURE_AND_CONTINUE; + } else if(!insuranceArchivesBaseInfoPO.getRunStatus().equals(EmployeeStatusEnum.STAY_ADD.getValue())){ + requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工的福利档案状态不是待增员,无法进行增员操作,请检查后重试!"); + return FAILURE_AND_CONTINUE; + } + //增员 + Map resultMap = getSIArchivesService(user).stayAddToPay(Collections.singletonList(insuranceArchivesBaseInfoPO.getId())); + if (resultMap.get("type").toString().equals("fail")) { + requestInfo.getRequestManager().setMessage(resultMap.get("msg").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/EditToStopSIArchiveAction.java b/src/com/engine/salary/action/EditToStopSIArchiveAction.java new file mode 100644 index 000000000..80b16ab93 --- /dev/null +++ b/src/com/engine/salary/action/EditToStopSIArchiveAction.java @@ -0,0 +1,184 @@ +package com.engine.salary.action; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.siarchives.param.SIArchiveImportParam; +import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; +import com.engine.salary.entity.taxagent.po.TaxAgentPO; +import com.engine.salary.enums.siaccount.EmployeeStatusEnum; +import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper; +import com.engine.salary.mapper.taxagent.TaxAgentMapper; +import com.engine.salary.service.SIArchivesService; +import com.engine.salary.service.SISchemeService; +import com.engine.salary.service.impl.SIArchivesServiceImpl; +import com.engine.salary.service.impl.SISchemeServiceImpl; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.db.MapperProxyFactory; +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.*; +import java.util.stream.Collectors; + +/** + * @Author: sy + * @Description: 编辑并减员福利档案 + * @Date: 2023/9/8 + **/ +@Slf4j +public class EditToStopSIArchiveAction implements Action { + private SISchemeService getSISchemeService(User user) { + return ServiceUtil.getService(SISchemeServiceImpl.class,user); + } + + private InsuranceBaseInfoMapper getInsuranceBaseInfoMapper() { + return MapperProxyFactory.getProxy(InsuranceBaseInfoMapper.class); + } + + private SIArchivesService getSIArchivesService(User user) { + return ServiceUtil.getService(SIArchivesServiceImpl.class,user); + } + + private TaxAgentMapper getTaxAgentMapper() { + return MapperProxyFactory.getProxy(TaxAgentMapper.class); + } + + 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 EditToStopSIArchiveAction.SalaryField(processField, salaryName, value)); + } + List> importData = new ArrayList<>(); + importData.add(SalaryEntityUtil.convert2Map(list, EditToStopSIArchiveAction.SalaryField::getSalaryName, EditToStopSIArchiveAction.SalaryField::getValue)); + //福利执行状态 + String runStatus = EmployeeStatusEnum.PAYING.getValue(); + + SIArchiveImportParam build = SIArchiveImportParam.builder() + .importDatas(importData) + .runStatus(runStatus) + .build(); + + //操作人 + String uid = list.stream().filter(f -> f.salaryName.equals("操作人")).findFirst().map(EditToStopSIArchiveAction.SalaryField::getValue).orElse("1"); + User user = new User(Integer.parseInt(uid)); + //更新/新建档案数据 + Map map = getSISchemeService(new User(Integer.parseInt(uid))).addSIArchive(build); + + List errorNotice = (List) map.get("errorData"); + if (CollectionUtils.isNotEmpty(errorNotice)) { + log.error("福利档案编辑并减员存在异常 requestId:{} ,参数:{}, map:{}", requestInfo.getRequestid(), build, map); + List> excelComments = (List>) map.get("errorData"); + StringBuilder message = new StringBuilder(""); + for (Map comments : excelComments) { + message.append(comments.get("message")).append("\n"); + } + requestInfo.getRequestManager().setMessage(message.toString()); + return FAILURE_AND_CONTINUE; + } + //刷新福利档案状态 + getSIArchivesService(user).handleStayDelData(Integer.parseInt(uid)); + //减员 + String taxAgentName = importData.get(0).get("个税扣缴义务人").toString(); + List taxAgentPOS = getTaxAgentMapper().listByName(taxAgentName); + if(CollectionUtils.isEmpty(taxAgentPOS)){ + requestInfo.getRequestManager().setMessage("个税扣缴义务人不存在!"); + return FAILURE_AND_CONTINUE; + } + Long taxAgentId = Long.valueOf(taxAgentPOS.get(0).getId()); + Long employeeId = Long.valueOf(list.stream().filter(f -> f.salaryName.equals("员工id")).findFirst().map(EditToStopSIArchiveAction.SalaryField::getValue).orElse("-1")); + + // 获取福利档案 + InsuranceArchivesBaseInfoPO insuranceArchivesBaseInfoPO = getInsuranceBaseInfoMapper().getOneByEmployeeIdAndPayOrg(taxAgentId, employeeId); + if(insuranceArchivesBaseInfoPO == null){ + requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工不存在福利档案,请检查后重试!"); + return FAILURE_AND_CONTINUE; + } else if(!insuranceArchivesBaseInfoPO.getRunStatus().equals(EmployeeStatusEnum.STAY_DEL.getValue())){ + requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工的福利档案状态不是待减员,无法进行减员操作,请检查后重试!"); + return FAILURE_AND_CONTINUE; + } + //减员 + Map resultMap = getSIArchivesService(user).stayDelToStop(Collections.singletonList(insuranceArchivesBaseInfoPO.getId())); + if (resultMap.get("type").toString().equals("fail")) { + requestInfo.getRequestManager().setMessage(resultMap.get("msg").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/StayAddToPaySIArchiveAction.java b/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java index 7f55d7d8a..c0bc0c0b0 100644 --- a/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java +++ b/src/com/engine/salary/action/StayAddToPaySIArchiveAction.java @@ -82,7 +82,7 @@ public class StayAddToPaySIArchiveAction implements Action { requestInfo.getRequestManager().setMessage("个税扣缴义务人不存在!"); return FAILURE_AND_CONTINUE; } - Long taxAgentId = Long.valueOf( taxAgentPOS.get(0).getId() ); + Long taxAgentId = Long.valueOf(taxAgentPOS.get(0).getId()); Long employeeId = Long.valueOf(importDataMap.getOrDefault("员工id", "-1").toString()); //操作人 diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index ffa532b2a..a07390040 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -614,6 +614,14 @@ public class SIAccountBiz extends Service { } }); } + //避免福利档案的方案未设置基数,导致核算时遗漏这些福利项的核算,遍历下方案相关福利项,并将遗漏的福利项id添加 + if(otherPerson.size() > 0) { + otherPerson.forEach((id, object) -> { + if (!needArchivesPerson.contains(id)) { + needArchivesPerson.add(id); + } + }); + } //判断核算周期、核算月、福利起始缴纳月的关系 checkCycleSettingWithStartMonth(otherPerson, billMonth, otherPO.getOtherStartTime()); @@ -676,6 +684,14 @@ public class SIAccountBiz extends Service { } }); } + //避免福利档案的方案未设置基数,导致核算时遗漏这些福利项的核算,遍历下方案相关福利项,并将遗漏的福利项id添加 + if(otherCom.size() > 0) { + otherCom.forEach((id, object) -> { + if (!needArchivesCom.contains(id)) { + needArchivesCom.add(id); + } + }); + } //判断核算周期、核算月、福利起始缴纳月的关系 checkCycleSettingWithStartMonth(otherCom, billMonth, otherPO.getOtherStartTime()); @@ -756,6 +772,14 @@ public class SIAccountBiz extends Service { } }); } + //避免福利档案的方案未设置基数,导致核算时遗漏这些福利项的核算,遍历下方案相关福利项,并将遗漏的福利项id添加 + if(fundperson.size() > 0) { + fundperson.forEach((id, object) -> { + if (!needArchivesPerson.contains(id)) { + needArchivesPerson.add(id); + } + }); + } //判断核算周期、核算月、福利起始缴纳月的关系 checkCycleSettingWithStartMonth(fundperson, billMonth, fundPO.getFundStartTime()); @@ -817,6 +841,14 @@ public class SIAccountBiz extends Service { } }); } + //避免福利档案的方案未设置基数,导致核算时遗漏这些福利项的核算,遍历下方案相关福利项,并将遗漏的福利项id添加 + if(fundCom.size() > 0) { + fundCom.forEach((id, object) -> { + if (!needArchivesCom.contains(id)) { + needArchivesCom.add(id); + } + }); + } //判断核算周期、核算月、福利起始缴纳月的关系 checkCycleSettingWithStartMonth(fundCom, billMonth, fundPO.getFundStartTime()); @@ -900,6 +932,14 @@ public class SIAccountBiz extends Service { } }); } + //避免福利档案的方案未设置基数,导致核算时遗漏这些福利项的核算,遍历下方案相关福利项,并将遗漏的福利项id添加 + if(schemeperson.size() > 0) { + schemeperson.forEach((id, object) -> { + if (!needArchivesPerson.contains(id)) { + needArchivesPerson.add(id); + } + }); + } //判断核算周期、核算月、福利起始缴纳月的关系 checkCycleSettingWithStartMonth(schemeperson, billMonth, socialPO.getSocialStartTime()); @@ -961,6 +1001,14 @@ public class SIAccountBiz extends Service { } }); } + //避免福利档案的方案未设置基数,导致核算时遗漏这些福利项的核算,遍历下方案相关福利项,并将遗漏的福利项id添加 + if(schemeCom.size() > 0) { + schemeCom.forEach((id, object) -> { + if (!needArchivesCom.contains(id)) { + needArchivesCom.add(id); + } + }); + } //判断核算周期、核算月、福利起始缴纳月的关系 checkCycleSettingWithStartMonth(schemeCom, billMonth, socialPO.getSocialStartTime()); diff --git a/src/com/engine/salary/entity/siaccount/dto/InsuranceAcctDetailImportFieldDTO.java b/src/com/engine/salary/entity/siaccount/dto/InsuranceAcctDetailImportFieldDTO.java index b7e99b168..1f3cc912c 100644 --- a/src/com/engine/salary/entity/siaccount/dto/InsuranceAcctDetailImportFieldDTO.java +++ b/src/com/engine/salary/entity/siaccount/dto/InsuranceAcctDetailImportFieldDTO.java @@ -16,7 +16,7 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class InsuranceAcctDetailImportFieldDTO { //字段id -// private String fieldId; + private String fieldId; //薪资项目名称 private String salaryItemName; diff --git a/src/com/engine/salary/entity/siarchives/param/SIArchiveImportParam.java b/src/com/engine/salary/entity/siarchives/param/SIArchiveImportParam.java new file mode 100644 index 000000000..24e53e232 --- /dev/null +++ b/src/com/engine/salary/entity/siarchives/param/SIArchiveImportParam.java @@ -0,0 +1,56 @@ +package com.engine.salary.entity.siarchives.param; + +import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; +import com.engine.salary.enums.siaccount.EmployeeStatusEnum; +import com.engine.salary.util.valid.DataCheck; +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/10 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SIArchiveImportParam { + + /** + * 上传文件id + */ + String imageId; + + /** + * 导入类型 + * + * @see EmployeeStatusEnum + */ + + String runStatus; + + /** + * 导入数据 + * + */ + List> importDatas; + + private boolean addData; + + /** + * 待生成的人员范围 + */ + List taxAgentRanges; + /** + * 是否是流程 + */ + boolean isProcess; + + +} diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.java b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.java index e96a6b8bb..ff149a787 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.java +++ b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.java @@ -17,6 +17,7 @@ public interface InsuranceCompensationMapper { List queryByBillMonthAndPayOrg(@Param("billMonth") String billMonth, @Param("paymentOrganization") Long paymentOrganization); InsuranceCompensationPO getOneByBillMonthPayOrgEmpId(InsuranceCompensationPO insuranceCompensationPO); + List getListByBillMonthPayOrgEmpId(InsuranceCompensationPO insuranceCompensationPO); List getByBillMonthPayOrgEmpIds(InsuranceCompensationPO insuranceCompensationPO); diff --git a/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.xml b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.xml index 7e3d4e321..0f2aa206b 100644 --- a/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.xml +++ b/src/com/engine/salary/mapper/siaccount/InsuranceCompensationMapper.xml @@ -208,6 +208,7 @@ WHERE t.bill_month = #{billMonth} AND t.payment_organization = #{paymentOrganization} AND t.delete_type = 0 + ORDER BY t.employee_id, t.create_time @@ -221,6 +222,17 @@ AND t.delete_type = 0 + + +