diff --git a/src/com/engine/salary/action/EditSalaryAction.java b/src/com/engine/salary/action/EditSalaryAction.java new file mode 100644 index 000000000..2e0bb759f --- /dev/null +++ b/src/com/engine/salary/action/EditSalaryAction.java @@ -0,0 +1,127 @@ +package com.engine.salary.action; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.wrapper.SalaryArchiveWrapper; +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSet; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Slf4j +public class EditSalaryAction implements Action { + + + private SalaryArchiveWrapper getSalaryArchiveWrapper(User user) { + return ServiceUtil.getService(SalaryArchiveWrapper.class, user); + } + + private String tableName; + + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + @Override + public String execute(RequestInfo requestInfo) { + try { + + Property[] properties = requestInfo.getMainTableInfo().getProperty(); + Map fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName, + property -> Util.null2String(property.getValue()))); + + + RecordSet rs = new RecordSet(); + + String queryImageId = "select salaryname,processfield from " + tableName + " where workflowid = ?"; + rs.executeQuery(queryImageId, requestInfo.getWorkflowid()); + + List list = new ArrayList<>(); + while (rs.next()) { + String processField = rs.getString("processfield"); + String salaryName = rs.getString("salaryname"); + String value = fieldMap.get(processField); + list.add(new SalaryField(processField, salaryName, value)); + } + List> importData = new ArrayList<>(); + importData.add(SalaryEntityUtil.convert2Map(list, SalaryField::getSalaryName, SalaryField::getValue)); + + SalaryArchiveImportActionParam build = SalaryArchiveImportActionParam.builder() + .importDatas(importData) + .build(); + Map map = getSalaryArchiveWrapper(new User()).adjustmentSalaryArchive(build); + + int errorCount = (int) map.get("errorCount"); + if (errorCount > 0) { + log.error("调薪存在异常 requestId:{} map:{}",requestInfo.getRequestid(), map); + List> excelComments = (List>) map.get("errorNotice"); + StringBuilder message = new StringBuilder("excel中"); + for (Map comments : excelComments) { + message.append(comments.get("message")).append("\n"); + } + requestInfo.getRequestManager().setMessage(message.toString()); + return FAILURE_AND_CONTINUE; + } + } catch (Exception e) { + log.error("调薪异常", e); + requestInfo.getRequestManager().setMessage(e.getMessage()); + return FAILURE_AND_CONTINUE; + } + return SUCCESS; + } + + + 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/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index 35916907d..d13f84e82 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -180,7 +180,10 @@ public class SalaryArchiveExcelBO extends Service { List mustHeaders = Lists.newArrayList(); - mustHeaders.add(userNameI18n); + if (!importHandleParam.isProcess()) { + //流程中可以使用人员id + mustHeaders.add(userNameI18n); + } mustHeaders.add(taxAgentI18n); // mustHeaders.add(incomeCategoryI18n); // mustHeaders.add(salarySobI18n); diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index cad57f7a4..e8dffa076 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -545,7 +545,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // 构建导入需要的数据 - SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(SalaryArchiveImportHandleParam.builder().listType(param.getListType()).importType(param.getImportType()).build()); + SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(SalaryArchiveImportHandleParam.builder().isProcess(true).listType(param.getListType()).importType(param.getImportType()).build()); int total = 0; @@ -698,6 +698,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // List hrmStatusList = hrmCommonHrmStatusService.list(tenantKey); return SalaryArchiveImportHandleParam.builder() + .isProcess(true) .listType(listType) .importType(importType) .currentEmployeeId((long) user.getUID()) diff --git a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java index e34a690af..8715d4f5e 100644 --- a/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxAgentServiceImpl.java @@ -492,19 +492,19 @@ public class TaxAgentServiceImpl extends Service implements TaxAgentService { // } // 被累计专项附加扣除引用 - List addUpDeductionList = getAddUpDeductionMapper().listSome(AddUpDeduction.builder().taxAgentId(id).build()); + List addUpDeductionList = getAddUpDeductionMapper().listSome(AddUpDeduction.builder().taxAgentIds(Collections.singleton(id)).build()); AddUpDeductionEncrypt.decryptAddUpDeductionList(addUpDeductionList); if (CollectionUtils.isNotEmpty(addUpDeductionList)) { throw new SalaryRunTimeException("存在累计专项附加扣除引用"); } // 被其他免税扣除引用 - List otherDeductionList = getOtherDeductionMapper().listSome(OtherDeductionPO.builder().taxAgentId(id).build()); + List otherDeductionList = getOtherDeductionMapper().listSome(OtherDeductionPO.builder().taxAgentIds(Collections.singleton(id)).build()); OtherDeductionPOEncrypt.decryptOtherDeductionPOList(otherDeductionList); if (CollectionUtils.isNotEmpty(otherDeductionList)) { throw new SalaryRunTimeException("存在其他免税扣除引用"); } // 被往期累计情况引用 - List addUpSituationList = getAddUpSituationMapper().listSome(AddUpSituation.builder().taxAgentId(id).build()); + List addUpSituationList = getAddUpSituationMapper().listSome(AddUpSituation.builder().taxAgentIds(Collections.singleton(id)).build()); AddUpSituationEncrypt.decryptAddUpSituationList(addUpSituationList); if (CollectionUtils.isNotEmpty(addUpSituationList)) { throw new SalaryRunTimeException("存在往期累计情况引用"); diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 684552d0f..abf67792f 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -36,7 +36,6 @@ import com.google.common.collect.Maps; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import weaver.conn.RecordSet; import weaver.hrm.User; import java.util.*; @@ -466,17 +465,6 @@ public class SalaryArchiveWrapper extends Service { return getSalaryArchiveService(user).exportList(queryParam); } - public Map checkImportSalaryArchive(SalaryArchiveImportHandleParam param) { - String queryImageId = "select imagefileid from docimagefile where docid = ?"; - if (param.getImageId() != null && !"".equals(param.getImageId())) { - RecordSet rs = new RecordSet(); - rs.executeQuery(queryImageId, param.getImageId()); - if (rs.next()) { - param.setImageId(rs.getString("imagefileid")); - } - } - return getSalaryArchiveExcelService(user).batchImportEbatch(param); - } /**