From 758a78996d3a6176abfbba2e19648064b3f6234f Mon Sep 17 00:00:00 2001 From: liuliang <401809302@qq.com> Date: Wed, 13 Jul 2022 18:59:30 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E8=96=AA=E9=85=AC?= =?UTF-8?q?=E6=A1=A3=E6=A1=88=E5=AF=B9=E6=8E=A5=E6=B5=81=E7=A8=8B=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/SalaryArchiveActionAPIController.java | 10 ++ .../salaryArchive/SalaryArchiveActionAPI.java | 104 ++++++++++++++++ .../salaryArchive/SalaryArchiveCommon.java | 38 ++++++ .../SalaryArchiveInitAction.java | 56 +++++++++ .../SalaryArchiveSalaryItemAdjustAction.java | 55 +++++++++ .../SalaryArchiveTaxAgentAdjustAction.java | 56 +++++++++ .../param/SalaryArchiveImportActionParam.java | 38 ++++++ .../salary/service/SalaryArchiveService.java | 15 +++ .../impl/SalaryArchiveServiceImpl.java | 112 +++++++++++++++++- .../salary/wrapper/SalaryArchiveWrapper.java | 24 ++++ .../engine/salary/biz/SIAccountBizTest.java | 25 ++++ 11 files changed, 531 insertions(+), 2 deletions(-) create mode 100644 src/com/api/salary/web/SalaryArchiveActionAPIController.java create mode 100644 src/com/engine/salary/action/salaryArchive/SalaryArchiveActionAPI.java create mode 100644 src/com/engine/salary/action/salaryArchive/SalaryArchiveCommon.java create mode 100644 src/com/engine/salary/action/salaryArchive/SalaryArchiveInitAction.java create mode 100644 src/com/engine/salary/action/salaryArchive/SalaryArchiveSalaryItemAdjustAction.java create mode 100644 src/com/engine/salary/action/salaryArchive/SalaryArchiveTaxAgentAdjustAction.java create mode 100644 src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java diff --git a/src/com/api/salary/web/SalaryArchiveActionAPIController.java b/src/com/api/salary/web/SalaryArchiveActionAPIController.java new file mode 100644 index 000000000..bf479e113 --- /dev/null +++ b/src/com/api/salary/web/SalaryArchiveActionAPIController.java @@ -0,0 +1,10 @@ +package com.api.salary.web; + + +import com.engine.salary.action.salaryArchive.SalaryArchiveActionAPI; + +import javax.ws.rs.Path; + +@Path("/bs/hrmsalary/salaryArchiveAction") +public class SalaryArchiveActionAPIController extends SalaryArchiveActionAPI { +} diff --git a/src/com/engine/salary/action/salaryArchive/SalaryArchiveActionAPI.java b/src/com/engine/salary/action/salaryArchive/SalaryArchiveActionAPI.java new file mode 100644 index 000000000..1e81d9b31 --- /dev/null +++ b/src/com/engine/salary/action/salaryArchive/SalaryArchiveActionAPI.java @@ -0,0 +1,104 @@ +package com.engine.salary.action.salaryArchive; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveTaxAgentFormDTO; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandleParam; +import com.engine.salary.util.ResponseResult; +import com.engine.salary.wrapper.SalaryArchiveWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; +import lombok.extern.slf4j.Slf4j; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.Map; + + +/** + * 薪资档案流程使用 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author liuliang + * @version 1.0 + **/ +@Slf4j +public class SalaryArchiveActionAPI { + + private SalaryArchiveWrapper getSalaryArchiveWrapper(User user) { + return ServiceUtil.getService(SalaryArchiveWrapper.class, user); + } + + /** + * 获取薪资档案列表 + * + * @return + * @param importType=salaryItemAdjust(调薪),taxAgentAdjust(调整个税扣缴义务人),init(档案初始化) + */ + @GET + @Path("/selectSalaryArchiveColumns") + @Produces(MediaType.APPLICATION_JSON) + public String selectSalarySobList(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam("importType") String importType) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::selectSalaryArchiveColumns,importType); + } + + /** + * 导入薪资档案(档案初始化) + * @param importData + * @return + */ + @POST + @Path("/importSalaryArchive/init") + @Produces(MediaType.APPLICATION_JSON) + public String importSalaryArchiveInit(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportActionParam importData) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::importSalaryArchiveInit, importData); + } + /** + * 导入薪资档案(调薪) + * @param importData + * @return + */ + @POST + @Path("/importSalaryArchive/salaryItemAdjust") + @Produces(MediaType.APPLICATION_JSON) + public String importSalaryArchiveSalaryItemAdjust(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportActionParam importData) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::importSalaryArchiveSalaryItemAdjust, importData); + } + /** + * 导入薪资档案(调整个税扣缴义务人) + * @param importData + * @return + */ + @POST + @Path("/importSalaryArchive/taxAgentAdjust") + @Produces(MediaType.APPLICATION_JSON) + public String importSalaryArchiveTaxAgentAdjust(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportActionParam importData) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::importSalaryArchiveTaxAgentAdjust, importData); + } + + + /** + * 导入薪资档案附件上传前置校验 + * @param importParam + * @return + */ + @POST + @Path("/importSalaryArchive/checkImportSalaryArchive") + @Produces(MediaType.APPLICATION_JSON) + public String checkParam(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportHandleParam importParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::checkImportSalaryArchive, importParam); + } + +} diff --git a/src/com/engine/salary/action/salaryArchive/SalaryArchiveCommon.java b/src/com/engine/salary/action/salaryArchive/SalaryArchiveCommon.java new file mode 100644 index 000000000..e3cface50 --- /dev/null +++ b/src/com/engine/salary/action/salaryArchive/SalaryArchiveCommon.java @@ -0,0 +1,38 @@ +package com.engine.salary.action.salaryArchive; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import weaver.conn.RecordSet; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.List; +import java.util.Map; + +public class SalaryArchiveCommon { + + public static Map getImportDatas(String requestId,String tableName){ + RecordSet rs = new RecordSet(); + String sql = "select xzxmdr,xzxmpldr from "+tableName+" where requestid="+requestId; + rs.executeQuery(sql); + Map dataMap = Maps.newHashMap(); + List> importDatas = Lists.newArrayList(); + dataMap.put("importDatas",importDatas); + if (rs.next()){ + String data = rs.getString("xzxmdr"); + dataMap.put("imageId",rs.getString("xzxmpldr")); + if (data != null && !"".equals(data)){ + if (data.contains(""")){ + data = data.replaceAll(""","\""); + } + JSONArray jsonObject = JSONObject.parseArray(data); + jsonObject.forEach(e -> { + Map map = (Map)e; + importDatas.add(map); + }); + } + } + return dataMap; + } +} diff --git a/src/com/engine/salary/action/salaryArchive/SalaryArchiveInitAction.java b/src/com/engine/salary/action/salaryArchive/SalaryArchiveInitAction.java new file mode 100644 index 000000000..b84447d0e --- /dev/null +++ b/src/com/engine/salary/action/salaryArchive/SalaryArchiveInitAction.java @@ -0,0 +1,56 @@ +package com.engine.salary.action.salaryArchive; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandleParam; +import com.engine.salary.service.SalaryArchiveService; +import com.engine.salary.service.impl.SalaryArchiveServiceImpl; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.List; +import java.util.Map; + +/** + * 薪资档案流程使用,导入薪资档案(初始化) + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author liuliang + * @version 1.0 + **/ +public class SalaryArchiveInitAction extends BaseBean implements Action { + private SalaryArchiveService getSalaryArchiveService(User user) { + return (SalaryArchiveService) ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); + } + @Override + public String execute(RequestInfo requestInfo) { + String requestId = requestInfo.getRequestid(); + String tableName = requestInfo.getRequestManager().getBillTableName(); + writeLog("requestId:"+requestId); + writeLog("tableName:"+tableName); + Map dataMap = SalaryArchiveCommon.getImportDatas(requestId,tableName); + List> importDatas = (List>)dataMap.get("importDatas"); + String imageId = dataMap.get("imageId") == null?"":dataMap.get("imageId").toString(); + User user = new User(Integer.valueOf(importDatas.get(0).get("userId").toString())); + //手动列表添加导入 + if (importDatas.size() > 0){ + + SalaryArchiveImportActionParam importData = SalaryArchiveImportActionParam.builder().importDatas(importDatas) + .importType("init").build(); + + Map resultMap = getSalaryArchiveService(user).importSalaryArchiveAction(importData,true); + writeLog("result :"+resultMap.toString()); + } + //附件上传导入 + if (!"".equals(imageId)){ + SalaryArchiveImportHandleParam param = SalaryArchiveImportHandleParam.builder().imageId(imageId).importType("init").build(); + Map responseMap = getSalaryArchiveService(user).importSalaryArchive(param); + writeLog("result :"+responseMap.toString()); + } + + return SUCCESS; + } +} diff --git a/src/com/engine/salary/action/salaryArchive/SalaryArchiveSalaryItemAdjustAction.java b/src/com/engine/salary/action/salaryArchive/SalaryArchiveSalaryItemAdjustAction.java new file mode 100644 index 000000000..c3c00cb28 --- /dev/null +++ b/src/com/engine/salary/action/salaryArchive/SalaryArchiveSalaryItemAdjustAction.java @@ -0,0 +1,55 @@ +package com.engine.salary.action.salaryArchive; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.action.salaryArchive.SalaryArchiveCommon; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandleParam; +import com.engine.salary.service.SalaryArchiveService; +import com.engine.salary.service.impl.SalaryArchiveServiceImpl; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.List; +import java.util.Map; + +/** + * 薪资档案流程使用,导入薪资档案(调薪) + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author liuliang + * @version 1.0 + **/ +public class SalaryArchiveSalaryItemAdjustAction extends BaseBean implements Action { + private SalaryArchiveService getSalaryArchiveService(User user) { + return (SalaryArchiveService) ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); + } + @Override + public String execute(RequestInfo requestInfo) { + String requestId = requestInfo.getRequestid(); + String tableName = requestInfo.getRequestManager().getBillTableName(); + writeLog("requestId:"+requestId); + writeLog("tableName:"+tableName); + Map dataMap = SalaryArchiveCommon.getImportDatas(requestId,tableName); + List> importDatas = (List>)dataMap.get("importDatas"); + String imageId = dataMap.get("imageId").toString(); + User user = new User(Integer.valueOf(importDatas.get(0).get("userId").toString())); + if (importDatas.size() > 0){ + + SalaryArchiveImportActionParam importData = SalaryArchiveImportActionParam.builder().importDatas(importDatas) + .importType("salaryItemAdjust").build(); + + Map resultMap = getSalaryArchiveService(user).importSalaryArchiveAction(importData,true); + writeLog("result :"+resultMap.toString()); + } + //附件上传导入 + if (!"".equals(imageId)){ + SalaryArchiveImportHandleParam param = SalaryArchiveImportHandleParam.builder().imageId(imageId).importType("salaryItemAdjust").build(); + Map responseMap = getSalaryArchiveService(user).importSalaryArchive(param); + writeLog("result :"+responseMap.toString()); + } + return SUCCESS; + } +} diff --git a/src/com/engine/salary/action/salaryArchive/SalaryArchiveTaxAgentAdjustAction.java b/src/com/engine/salary/action/salaryArchive/SalaryArchiveTaxAgentAdjustAction.java new file mode 100644 index 000000000..ec645a875 --- /dev/null +++ b/src/com/engine/salary/action/salaryArchive/SalaryArchiveTaxAgentAdjustAction.java @@ -0,0 +1,56 @@ +package com.engine.salary.action.salaryArchive; + +import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandleParam; +import com.engine.salary.service.SalaryArchiveService; +import com.engine.salary.service.impl.SalaryArchiveServiceImpl; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.List; +import java.util.Map; + +/** + * 薪资档案流程使用,导入薪资档案(调整个税扣缴义务人) + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author liuliang + * @version 1.0 + **/ +public class SalaryArchiveTaxAgentAdjustAction extends BaseBean implements Action { + private SalaryArchiveService getSalaryArchiveService(User user) { + return (SalaryArchiveService) ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); + } + @Override + public String execute(RequestInfo requestInfo) { + String requestId = requestInfo.getRequestid(); + String tableName = requestInfo.getRequestManager().getBillTableName(); + writeLog("requestId:"+requestId); + writeLog("tableName:"+tableName); + + Map dataMap = SalaryArchiveCommon.getImportDatas(requestId,tableName); + List> importDatas = (List>)dataMap.get("importDatas"); + String imageId = dataMap.get("imageId").toString(); + User user = new User(Integer.valueOf(importDatas.get(0).get("userId").toString())); + if (importDatas.size() > 0){ + + SalaryArchiveImportActionParam importData = SalaryArchiveImportActionParam.builder().importDatas(importDatas) + .importType("taxAgentAdjust").build(); + + Map resultMap = getSalaryArchiveService(user).importSalaryArchiveAction(importData,true); + writeLog("result :"+resultMap.toString()); + } + + //附件上传导入 + if (!"".equals(imageId)){ + SalaryArchiveImportHandleParam param = SalaryArchiveImportHandleParam.builder().imageId(imageId).importType("taxAgentAdjust").build(); + Map responseMap = getSalaryArchiveService(user).importSalaryArchive(param); + writeLog("result :"+responseMap.toString()); + } + return SUCCESS; + } +} diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java new file mode 100644 index 000000000..4dda95dce --- /dev/null +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportActionParam.java @@ -0,0 +1,38 @@ +package com.engine.salary.entity.salaryarchive.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; + +import java.util.List; +import java.util.Map; + + +/** + * 薪资档案导入处理参数(action使用) + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author liuliang + * @version 1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryArchiveImportActionParam { + /** + * 导入类型 + * + * @see SalaryArchiveImportTypeEnum + */ + String importType; + + /** + * 导入数据 + * + */ + List> importDatas; +} diff --git a/src/com/engine/salary/service/SalaryArchiveService.java b/src/com/engine/salary/service/SalaryArchiveService.java index ca58796fd..8d6a738ec 100644 --- a/src/com/engine/salary/service/SalaryArchiveService.java +++ b/src/com/engine/salary/service/SalaryArchiveService.java @@ -4,6 +4,7 @@ import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveDimissionSaveParam; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandleParam; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveDimissionPO; @@ -125,7 +126,21 @@ public interface SalaryArchiveService { Map importSalaryArchive(SalaryArchiveImportHandleParam param); + Map importSalaryArchive(SalaryArchiveImportHandleParam param,boolean ifImportData); + Map preview(SalaryArchiveImportHandleParam param); + /** + * 查询薪酬档案所有列名 + * @return + */ + Map selectSalaryArchiveColumns(SalaryArchiveImportTypeEnum salaryArchiveImportTypeEnum); + + /** + * 导入薪资档案(action使用) + * @param importData + * @return + */ + Map importSalaryArchiveAction(SalaryArchiveImportActionParam importData, boolean ifImportData); } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 621bb4eb3..7f717313f 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -478,7 +478,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe /** * 导入薪资档案 */ - public Map importSalaryArchive(SalaryArchiveImportHandleParam param) { + public Map importSalaryArchive(SalaryArchiveImportHandleParam param,boolean ifImportData) { //1、参数校验 vaildImportParam(param); @@ -543,7 +543,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe } // 4.数据入库处理 - handleImportData(isInit, importHandleParam); + if (ifImportData){ + handleImportData(isInit, importHandleParam); + } Map apidatas = new HashMap<>(); @@ -559,6 +561,78 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe } + public Map importSalaryArchive(SalaryArchiveImportHandleParam param){ + return importSalaryArchive(param,true); + } + + /** + * 导入薪资档案(action使用) + * @param importData 导入参数 + * @return + */ + public Map importSalaryArchiveAction(SalaryArchiveImportActionParam importData,boolean ifImportData){ + // 1.构建导入需要的数据 + SalaryArchiveImportHandleParam importHandleParam = buildImportHandleParam(); + //导入类型 + String importType = importData.getImportType(); + // 需要导入的数据 + List> data = importData.getImportDatas(); + // 成功数量 + int successCount = 0; + // 错误数量 + int errorCount = 0; + // 错误数据 + List> errorData = Lists.newArrayList(); + // 错误提示 + List> excelComments = new ArrayList<>(); + + List initImportData = Lists.newArrayList(); + + boolean isInit = importType.equals(SalaryArchiveImportTypeEnum.INIT.getValue()); + + for (int i = 0; i < data.size(); i++) { + Map map = data.get(i); + List headers = Lists.newArrayList(); + map.keySet().forEach(headers::add); + int effectiveTimeIndex = 0; + for (int j = 0; j < headers.size(); j++) { + if (headers.get(j).equals(SalaryI18nUtil.getI18nLabel(85904, "生效日期"))) { + effectiveTimeIndex = j; + break; + } + } + map.put("index", i + 2); + // 3.校验行内容 + boolean isError = singleRowCheck(importType, Lists.newArrayList(), map, headers, effectiveTimeIndex, excelComments, errorCount, importHandleParam); + if (isError) { + errorCount += 1; + // 添加错误数据 + errorData.add(map); + } else { + successCount += 1; + } + // 初始化导入对重复记录校验 + if (isInit) { + Map validMap = validInitImportData(isError, i, map, excelComments, errorCount, successCount, errorData, initImportData, importHandleParam); + errorCount = Integer.parseInt(validMap.getOrDefault("errorCount", errorCount).toString()); + successCount = Integer.parseInt(validMap.getOrDefault("successCount", successCount).toString()); + } + } + // 4.数据入库处理 + if (ifImportData){ + handleImportData(isInit, importHandleParam); + } + + Map apidatas = new HashMap<>(); + + apidatas.put("successCount", successCount); + apidatas.put("errorCount", errorCount); + apidatas.put("errorNotice", excelComments); + return apidatas; + + } + + @Override public Map preview(SalaryArchiveImportHandleParam param) { //1、参数校验 @@ -1345,4 +1419,38 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe salaryArchiveItemMapper.batchInsert(salaryArchiveItemSaves); } } + + @Override + public Map selectSalaryArchiveColumns(SalaryArchiveImportTypeEnum salaryArchiveImportTypeEnum) { + HashMap map = Maps.newHashMap(); + //类型为档案初始化 + boolean isInit = salaryArchiveImportTypeEnum.getValue().equals(SalaryArchiveImportTypeEnum.INIT.getValue()); + //类型为调整个税扣缴义务人 + boolean isTaxAgentAdjust = salaryArchiveImportTypeEnum.getValue().equals(SalaryArchiveImportTypeEnum.TAXAGENTADJUST.getValue()); + //类型为调薪 + boolean isSalaryItemAdjust = salaryArchiveImportTypeEnum.getValue().equals(SalaryArchiveImportTypeEnum.SALARYITEMADJUST.getValue()); + + //固定列 + map.put(SalaryI18nUtil.getI18nLabel(85429, "姓名"),"username"); + map.put(SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"),"taxAgentName"); + map.put(SalaryI18nUtil.getI18nLabel(85904, "生效日期"),"taxAgentEffectiveTime"); + map.put(SalaryI18nUtil.getI18nLabel(86185, "部门"),"departmentName"); + map.put(SalaryI18nUtil.getI18nLabel(86186, "手机号"),"mobile"); + map.put(SalaryI18nUtil.getI18nLabel(91075, "员工状态"),"employeeStatus"); + + List salaryItems = salaryItemMapper.getCanAdjustSalaryItems(); + + if (isTaxAgentAdjust || isSalaryItemAdjust) { + map.put(SalaryI18nUtil.getI18nLabel(85431, "调整原因"),"adjustReason"); + } + //动态列 + // 获取所有可被引用的薪资项目 + if (isInit || isSalaryItemAdjust) { + for (SalaryItemPO salaryItem : salaryItems) { + map.put(salaryItem.getName(),salaryItem.getCode()); + } + } + + return map; + } } diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 802aea9ef..4a138b3ae 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -12,6 +12,7 @@ import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveBaseInfoFormDTO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveFormDTO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveDimissionSaveParam; +import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandleParam; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveDimissionPO; @@ -263,6 +264,11 @@ public class SalaryArchiveWrapper extends Service { return getSalaryArchiveService(user).importSalaryArchive(param); } + + public Map checkImportSalaryArchive(SalaryArchiveImportHandleParam param) { + return getSalaryArchiveService(user).importSalaryArchive(param,false); + } + public XSSFWorkbook exportList(SalaryArchiveQueryParam queryParam) { return getSalaryArchiveService(user).exportList(queryParam); } @@ -280,5 +286,23 @@ public class SalaryArchiveWrapper extends Service { return map; } + public Map selectSalaryArchiveColumns(String importType){ + return getSalaryArchiveService(user).selectSalaryArchiveColumns(SalaryArchiveImportTypeEnum.parseByValue(importType)); + } + + + public Map importSalaryArchiveInit(SalaryArchiveImportActionParam importData){ + importData.setImportType("init"); + return getSalaryArchiveService(user).importSalaryArchiveAction(importData,false); + } + public Map importSalaryArchiveSalaryItemAdjust(SalaryArchiveImportActionParam importData){ + importData.setImportType("salaryItemAdjust"); + return getSalaryArchiveService(user).importSalaryArchiveAction(importData,false); + } + public Map importSalaryArchiveTaxAgentAdjust(SalaryArchiveImportActionParam importData){ + importData.setImportType("taxAgentAdjust"); + return getSalaryArchiveService(user).importSalaryArchiveAction(importData,false); + } + } diff --git a/test/com/engine/salary/biz/SIAccountBizTest.java b/test/com/engine/salary/biz/SIAccountBizTest.java index bdd052632..27485fb69 100644 --- a/test/com/engine/salary/biz/SIAccountBizTest.java +++ b/test/com/engine/salary/biz/SIAccountBizTest.java @@ -1,10 +1,18 @@ package com.engine.salary.biz; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.engine.salary.action.salaryArchive.SalaryArchiveInitAction; import com.engine.salary.entity.siaccount.param.InsuranceAccountDetailParam; +import com.google.common.collect.Lists; import weaver.general.GCONST; import org.junit.Before; import org.junit.Test; import weaver.conn.RecordSet; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.List; +import java.util.Map; public class SIAccountBizTest { @Before @@ -21,4 +29,21 @@ public class SIAccountBizTest { SIAccountBiz siAccountBiz = new SIAccountBiz(); siAccountBiz.overView(queryParam); } + @Test + public void testSalaryArchiveInitAction(){ + String requestId = "564566"; + String tableName = "formtable_main_26"; + RecordSet rs = new RecordSet(); + String sql = "select xzxmdr from "+tableName+" where requestid="+requestId; + rs.executeQuery(sql); + List> importDatas = Lists.newArrayList(); + if (rs.next()){ + String data = rs.getString("xzxmdr"); + JSONArray jsonObject = JSONObject.parseArray(data); + jsonObject.forEach(e -> { + Map map = (Map)e; + importDatas.add(map); + }); + } + } } From b9528442f94c9171ed0ca8078bb7d1b14fae5a8f Mon Sep 17 00:00:00 2001 From: liuliang <401809302@qq.com> Date: Mon, 18 Jul 2022 16:19:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=96=AA=E9=85=AC=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=B9=E6=8E=A5=E6=B5=81=E7=A8=8B-liuliang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryArchive/SalaryArchiveActionAPI.java | 30 ++----------------- .../salaryArchive/SalaryArchiveCommon.java | 8 +++++ .../salary/wrapper/SalaryArchiveWrapper.java | 9 ++++++ 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/src/com/engine/salary/action/salaryArchive/SalaryArchiveActionAPI.java b/src/com/engine/salary/action/salaryArchive/SalaryArchiveActionAPI.java index 1e81d9b31..0d8651a84 100644 --- a/src/com/engine/salary/action/salaryArchive/SalaryArchiveActionAPI.java +++ b/src/com/engine/salary/action/salaryArchive/SalaryArchiveActionAPI.java @@ -51,41 +51,17 @@ public class SalaryArchiveActionAPI { } /** - * 导入薪资档案(档案初始化) + * 前置校验、列表添加接口 * @param importData * @return */ @POST - @Path("/importSalaryArchive/init") + @Path("/checkImportSalaryArchiveListAdd") @Produces(MediaType.APPLICATION_JSON) public String importSalaryArchiveInit(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportActionParam importData) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::importSalaryArchiveInit, importData); } - /** - * 导入薪资档案(调薪) - * @param importData - * @return - */ - @POST - @Path("/importSalaryArchive/salaryItemAdjust") - @Produces(MediaType.APPLICATION_JSON) - public String importSalaryArchiveSalaryItemAdjust(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportActionParam importData) { - User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::importSalaryArchiveSalaryItemAdjust, importData); - } - /** - * 导入薪资档案(调整个税扣缴义务人) - * @param importData - * @return - */ - @POST - @Path("/importSalaryArchive/taxAgentAdjust") - @Produces(MediaType.APPLICATION_JSON) - public String importSalaryArchiveTaxAgentAdjust(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportActionParam importData) { - User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalaryArchiveWrapper(user)::importSalaryArchiveTaxAgentAdjust, importData); - } /** @@ -94,7 +70,7 @@ public class SalaryArchiveActionAPI { * @return */ @POST - @Path("/importSalaryArchive/checkImportSalaryArchive") + @Path("/checkImportSalaryArchiveUpload") @Produces(MediaType.APPLICATION_JSON) public String checkParam(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveImportHandleParam importParam) { User user = HrmUserVarify.getUser(request, response); diff --git a/src/com/engine/salary/action/salaryArchive/SalaryArchiveCommon.java b/src/com/engine/salary/action/salaryArchive/SalaryArchiveCommon.java index e3cface50..a37fa867d 100644 --- a/src/com/engine/salary/action/salaryArchive/SalaryArchiveCommon.java +++ b/src/com/engine/salary/action/salaryArchive/SalaryArchiveCommon.java @@ -33,6 +33,14 @@ public class SalaryArchiveCommon { }); } } + String queryImageId = "select imagefileid from docimagefile where docid = ?"; + if (dataMap.get("imageId") != null && !"".equals(dataMap.get("imageId"))){ + rs.executeQuery(queryImageId,dataMap.get("imageId")); + if (rs.next()){ + dataMap.put("imageId",rs.getString("imagefileid")); + } + } + return dataMap; } } diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 4a138b3ae..7e04cc689 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -39,6 +39,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import weaver.conn.RecordSet; import weaver.hrm.User; import java.util.*; @@ -266,6 +267,14 @@ public class SalaryArchiveWrapper extends Service { 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 getSalaryArchiveService(user).importSalaryArchive(param,false); }