From c3b2dc298268e869f50e5b0cd5f354d69c2953b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 1 Dec 2025 11:35:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=92=B1=E6=99=BA=E7=A4=BE=E4=BF=9D=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/customization/salary/hrmSalaryQZ.properties | 3 ++ .../service/impl/RecordsBuildServiceImpl.java | 37 ++++++++++++++++--- 2 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 resource/wiki/代码样例/拦截工资单相关接口/com/customization/salary/hrmSalaryQZ.properties diff --git a/resource/wiki/代码样例/拦截工资单相关接口/com/customization/salary/hrmSalaryQZ.properties b/resource/wiki/代码样例/拦截工资单相关接口/com/customization/salary/hrmSalaryQZ.properties new file mode 100644 index 000000000..98908b874 --- /dev/null +++ b/resource/wiki/代码样例/拦截工资单相关接口/com/customization/salary/hrmSalaryQZ.properties @@ -0,0 +1,3 @@ +# ????? +actualWorkplaceField=field64 + diff --git a/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java b/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java index 6eb3afc46..299acd3da 100644 --- a/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java +++ b/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java @@ -17,6 +17,7 @@ import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.siaccount.BillStatusEnum; import com.engine.salary.enums.siaccount.ResourceFromEnum; import com.engine.salary.enums.sicategory.PaymentScopeEnum; +import com.engine.salary.mapper.SQLMapper; import com.engine.salary.mapper.datacollection.EmployMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; @@ -34,6 +35,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.conn.RecordSet; +import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; import weaver.hrm.company.DepartmentComInfo; @@ -76,6 +78,10 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ return ServiceUtil.getService(SIArchivesServiceImpl.class, user); } + private SQLMapper getSQLMapper() { + return MapperProxyFactory.getProxy(SQLMapper.class); + } + @Override public List> buildCommonRecords(List list, Long employeeId, boolean dynamicEmpInfo) { // boolean welBaseDiffSign = siArchivesBiz.isDiffWelBase(); @@ -531,18 +537,39 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ List employeeIds = list.stream().map(item -> item.getEmployeeId()).distinct().collect(Collectors.toList()); List employeeByIds = new ArrayList<>(); List> partition = Lists.partition(employeeIds, 1000); - Map map = new HashMap<>(); + + + BaseBean bb = new BaseBean(); + String actualWorkplaceField = bb.getPropValue("hrmSalaryQZ", "actualWorkplaceField"); + Map actualWorkplaceMap = new HashMap<>(); for (List ids : partition) { employeeByIds.addAll(getSalaryEmployeeService(user).getEmployeeByIdsAll(ids)); //获取实际工作地 RecordSet rs = new RecordSet(); - String sql =String.format("select id ,field64 from cus_fielddata where scopeid =3 and id in(%s)",ids.stream().map(Object::toString).collect(Collectors.joining(","))) ; + String sql = String.format("select id ,%s from cus_fielddata where scopeid =3 and id in(%s)", actualWorkplaceField, ids.stream().map(Object::toString).collect(Collectors.joining(","))); rs.executeQuery(sql); while (rs.next()) { String processField = rs.getString("id"); - String salaryName = rs.getString("field64"); + String actualWorkplace = rs.getString(actualWorkplaceField); + actualWorkplaceMap.put(Long.parseLong(processField), actualWorkplace); } } + + Map laborWorkplaceMap = new HashMap<>(); + for (List ids : partition) { + //劳动关系地 + RecordSet rs = new RecordSet(); + String sql = String.format("select a.ygxm,b.ztmc from uf_htxy a left join uf_htzt b on a.htgsmc = b.id where a.htlx=0 and a.ygxm in (%s) ORDER BY a.htqsrq desc", ids.stream().map(Object::toString).collect(Collectors.joining(","))); + rs.executeQuery(sql); + while (rs.next()) { + String processField = rs.getString("ygxm"); + String laborWorkplace = rs.getString("ztmc"); + if (!laborWorkplaceMap.containsKey(Long.parseLong(processField))) { + laborWorkplaceMap.put(Long.parseLong(processField), laborWorkplace); + } + } + } + if (CollectionUtils.isEmpty(employeeByIds)) { return result; } @@ -554,8 +581,6 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ DepartmentComInfo departmentComInfo = new DepartmentComInfo(); - - list.forEach(item -> { Map record = new HashMap<>(); DataCollectionEmployee simpleEmployee = collect.get(item.getEmployeeId()); @@ -563,6 +588,8 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ record.put("paymentOrganizationName", paymentMap.get(item.getSocialPayOrg()) == null ? "" : paymentMap.get(item.getSocialPayOrg()).getName()); record.put("workcode", StringUtils.isBlank(simpleEmployee.getWorkcode()) ? "" : simpleEmployee.getWorkcode()); record.put("userName", simpleEmployee.getUsername()); + record.put("actualWorkplace", actualWorkplaceMap.getOrDefault(item.getEmployeeId(), "")); + record.put("laborWorkplace", laborWorkplaceMap.getOrDefault(item.getEmployeeId(), "")); String[] depList = new String[0]; try { depList = departmentComInfo.getDepartmentRealPath(simpleEmployee.getDepartmentId().toString(), ",", "").split(",");