港湾新批量调薪

This commit is contained in:
Harryxzy 2024-09-10 18:09:33 +08:00
parent 2f42845578
commit e7de9d7d1e
34 changed files with 3367 additions and 7 deletions

View File

@ -0,0 +1,21 @@
CREATE TABLE hrsa_gw_pltx_dt1 (
id bigint NOT NULL,
mainid bigint NULL,
xm int NULL ,
bm int NULL ,
gw text NULL,
qnjxfs decimal(38, 2) NULL,
jbgz decimal(38, 2) NULL ,
dx decimal(38, 2) NULL,
dxhjbgz decimal(38, 2) NULL,
dxbl decimal(38, 4) NULL ,
gskjywr text NULL ,
hjxz decimal(38, 2) NULL ,
dzhhjxz decimal(38, 2) NULL ,
hjxzdzbl decimal(38, 4) NULL ,
bz text NULL,
nzjj decimal(38, 2) NULL ,
delete_type int NULL ,
PRIMARY KEY (id)
)
GO

View File

@ -0,0 +1,143 @@
package com.engine.salary.action;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.salaryacct.po.GwPltxDt1PO;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.service.GwPltxDt1Service;
import com.engine.salary.service.SalaryItemService;
import com.engine.salary.service.impl.GwPltxDt1ServiceImpl;
import com.engine.salary.service.impl.SalaryItemServiceImpl;
import com.engine.salary.wrapper.SalaryArchiveWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import weaver.general.BaseBean;
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.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* 上海港湾 - 第六层级批量流程调薪
*/
@Slf4j
public class shgwPltxActionNEW implements Action {
private GwPltxDt1Service getGwPltxDt1Service(User user) {
return ServiceUtil.getService(GwPltxDt1ServiceImpl.class, user);
}
private SalaryArchiveWrapper getSalaryArchiveWrapper(User user) {
return ServiceUtil.getService(SalaryArchiveWrapper.class, user);
}
private SalaryItemService getSalaryItemService(User user) {
return (SalaryItemService) ServiceUtil.getService(SalaryItemServiceImpl.class, user);
}
@Override
public String execute(RequestInfo requestInfo) {
try {
User user = new User();
user.setLoginid("sysadmin");
user.setUid(1);
BaseBean baseBean = new BaseBean();
Property[] properties = requestInfo.getMainTableInfo().getProperty();
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String dxcj = fieldMap.get("dxcj");
if (dxcj.equals("5")) {
// 获取流程id
String requestid = requestInfo.getRequestid();
// 从表中取数据
List<GwPltxDt1PO> gwPltxDt1POS = getGwPltxDt1Service(user).listSome(GwPltxDt1PO.builder().mainid(Long.valueOf(requestid)).build());
String salaryItemId = baseBean.getPropValue("shgwSalary", "pltxSalaryItemId");
SalaryItemPO salaryItemPO = getSalaryItemService(user).getById(Long.valueOf(salaryItemId));
List<Map<String, Object>> importData = new ArrayList<>();
gwPltxDt1POS.stream()
.filter(po -> po.getDx() != null && !po.getDx().equals(BigDecimal.ZERO))
.forEach(po -> {
HashMap<String, Object> map = new HashMap<>();
map.put("员工id", po.getXm());
map.put("调整原因", "调薪");
map.put("个税扣缴义务人", po.getGskjywr());
map.put("生效日期", fieldMap.get("Sxrq"));
map.put(Util.formatMultiLang(salaryItemPO.getName(), "7") , po.getDxhjbgz());
importData.add(map);
});
baseBean.writeLog("gwtx:" + importData);
SalaryArchiveImportActionParam build = SalaryArchiveImportActionParam.builder()
.gwpltxWorkflow(true)
.importDatas(importData)
.build();
Map<String, Object> map = getSalaryArchiveWrapper(user).adjustmentSalaryArchive(build);
List errorNotice = (List) map.get("errorNotice");
if (CollectionUtils.isNotEmpty(errorNotice)) {
log.error("调薪存在异常 requestId:{} map:{}", requestInfo.getRequestid(), map);
List<Map<String, String>> excelComments = (List<Map<String, String>>) map.get("errorNotice");
StringBuilder message = new StringBuilder("");
for (Map<String, String> 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;
}
}
}

View File

@ -0,0 +1,143 @@
package com.engine.salary.action;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.salaryacct.po.GwPltxDt1PO;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportActionParam;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.service.GwPltxDt1Service;
import com.engine.salary.service.SalaryItemService;
import com.engine.salary.service.impl.GwPltxDt1ServiceImpl;
import com.engine.salary.service.impl.SalaryItemServiceImpl;
import com.engine.salary.wrapper.SalaryArchiveWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import weaver.general.BaseBean;
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.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* 上海港湾 - 第六层级批量流程调薪
*/
@Slf4j
public class shgwPltxActionNEWCheck implements Action {
private GwPltxDt1Service getGwPltxDt1Service(User user) {
return ServiceUtil.getService(GwPltxDt1ServiceImpl.class, user);
}
private SalaryArchiveWrapper getSalaryArchiveWrapper(User user) {
return ServiceUtil.getService(SalaryArchiveWrapper.class, user);
}
private SalaryItemService getSalaryItemService(User user) {
return (SalaryItemService) ServiceUtil.getService(SalaryItemServiceImpl.class, user);
}
@Override
public String execute(RequestInfo requestInfo) {
try {
User user = new User();
user.setLoginid("sysadmin");
user.setUid(1);
BaseBean baseBean = new BaseBean();
Property[] properties = requestInfo.getMainTableInfo().getProperty();
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
String dxcj = fieldMap.get("dxcj");
// if (dxcj.equals("5")) {
// 获取流程id
String requestid = requestInfo.getRequestid();
// 从表中取数据
List<GwPltxDt1PO> gwPltxDt1POS = getGwPltxDt1Service(user).listSome(GwPltxDt1PO.builder().mainid(Long.valueOf(requestid)).build());
String salaryItemId = baseBean.getPropValue("shgwSalary", "pltxSalaryItemId");
SalaryItemPO salaryItemPO = getSalaryItemService(user).getById(Long.valueOf(salaryItemId));
List<Map<String, Object>> importData = new ArrayList<>();
gwPltxDt1POS.stream()
.filter(po -> po.getDx() != null && !po.getDx().equals(BigDecimal.ZERO))
.forEach(po -> {
HashMap<String, Object> map = new HashMap<>();
map.put("员工id", po.getXm());
map.put("调整原因", "调薪");
map.put("个税扣缴义务人", po.getGskjywr());
map.put("生效日期", fieldMap.get("Sxrq"));
map.put(Util.formatMultiLang(salaryItemPO.getName(), "7") , po.getDxhjbgz());
importData.add(map);
});
baseBean.writeLog("gwtx:" + importData);
SalaryArchiveImportActionParam build = SalaryArchiveImportActionParam.builder()
.gwpltxWorkflow(true)
.importDatas(importData)
.build();
Map<String, Object> map = getSalaryArchiveWrapper(user).checkAdjustmentSalaryArchive(build);
List errorNotice = (List) map.get("errorNotice");
if (CollectionUtils.isNotEmpty(errorNotice)) {
log.error("调薪检查存在异常 requestId:{} map:{}", requestInfo.getRequestid(), map);
List<Map<String, String>> excelComments = (List<Map<String, String>>) map.get("errorNotice");
StringBuilder message = new StringBuilder("");
for (Map<String, String> 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;
}
}
}

View File

@ -0,0 +1,90 @@
package com.engine.salary.action;
import com.engine.common.util.ServiceUtil;
import com.engine.salary.entity.salaryacct.param.pltxDetailsToModeSaveParam;
import com.engine.salary.entity.salaryacct.po.GwPltxDt1PO;
import com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt1PO;
import com.engine.salary.entity.salaryacct.po.UfTxjlgljmbPO;
import com.engine.salary.service.GwPltxDt1Service;
import com.engine.salary.service.SalaryAcctResultService;
import com.engine.salary.service.impl.GwPltxDt1ServiceImpl;
import com.engine.salary.service.impl.SalaryAcctResultServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.math.NumberUtils;
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.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 上海港湾 - 批量调薪流程转建模
*/
@Slf4j
public class shgwPltxDetailsToModeAction implements Action {
private SalaryAcctResultService getSalaryAcctResultService(User user) {
return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user);
}
private GwPltxDt1Service getGwPltxDt1Service(User user) {
return ServiceUtil.getService(GwPltxDt1ServiceImpl.class, user);
}
@Override
public String execute(RequestInfo requestInfo) {
String requestid = requestInfo.getRequestid();
Property[] properties = requestInfo.getMainTableInfo().getProperty();
Map<String, String> fieldMap = Arrays.stream(properties).collect(Collectors.toMap(Property::getName,
property -> Util.null2String(property.getValue())));
User user = new User();
user.setUid(1);
// 主表数据
UfTxjlgljmbPO ufTxjlgljmbPO = new UfTxjlgljmbPO();
ufTxjlgljmbPO.setFqrxm(NumberUtils.isCreatable(fieldMap.get("fqrxm")) ? Integer.valueOf(fieldMap.get("fqrxm")) : null);
ufTxjlgljmbPO.setFqrq(fieldMap.get("fqrq"));
ufTxjlgljmbPO.setFqrbm(NumberUtils.isCreatable(fieldMap.get("fqrbm")) ? Integer.valueOf(fieldMap.get("fqrbm")) : null);
ufTxjlgljmbPO.setFqrgs(NumberUtils.isCreatable(fieldMap.get("fqrgs")) ? Integer.valueOf(fieldMap.get("fqrgs")) : null);
ufTxjlgljmbPO.setSxrq(fieldMap.get("Sxrq"));
ufTxjlgljmbPO.setSpr(NumberUtils.isCreatable(fieldMap.get("spr")) ? Integer.valueOf(fieldMap.get("spr")) : null);
ufTxjlgljmbPO.setDxcj(NumberUtils.isCreatable(fieldMap.get("dxcj")) ? Integer.valueOf(fieldMap.get("dxcj")) : null);
ufTxjlgljmbPO.setDxdycjspr(fieldMap.get("dxdycjspr"));
ufTxjlgljmbPO.setDxdecjspr(fieldMap.get("dxdecjspr"));
ufTxjlgljmbPO.setDxdsacjspr(fieldMap.get("dxdsacjspr"));
ufTxjlgljmbPO.setDxdsicjspr(fieldMap.get("dxdsicjspr"));
ufTxjlgljmbPO.setDxdwcjspr(fieldMap.get("dxdwcjspr"));
ufTxjlgljmbPO.setDxdlcjspr(fieldMap.get("dxdlcjspr"));
ufTxjlgljmbPO.setNd(NumberUtils.isCreatable(fieldMap.get("nd")) ? Integer.valueOf(fieldMap.get("nd")) : null);
// 明细表1数据
List<GwPltxDt1PO> gwPltxDt1POS = getGwPltxDt1Service(user).listSome(GwPltxDt1PO.builder().mainid(Long.valueOf(requestid)).build());
List<UfTxjlgljmbDt1PO> collect = gwPltxDt1POS.stream().map(po -> {
return UfTxjlgljmbDt1PO.builder()
.Xm(po.getXm())
.bm(po.getBm())
.gw(po.getGw())
.qnjxfs(po.getQnjxfs())
.jbgz(po.getJbgz())
.dx(po.getDx())
.dxhjbgz(po.getDxhjbgz())
.dxbl(po.getDxbl())
.gskjywr(po.getGskjywr())
.dzhhjxz(po.getDzhhjxz())
.hjxzdzbl(po.getHjxzdzbl())
.bz(po.getBz())
.hjgz(po.getHjxz())
.nzjj(po.getNzjj())
.build();
}).collect(Collectors.toList());
pltxDetailsToModeSaveParam param = pltxDetailsToModeSaveParam.builder().txjlgljmb(ufTxjlgljmbPO).dt1(collect).build();
getSalaryAcctResultService(user).pltxDetailsToMode(param);
return SUCCESS;
}
}

View File

@ -17,6 +17,8 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
public class pltxEmployeeDTO {
private Long id;
// 姓名
private Long employee;
@ -57,4 +59,6 @@ public class pltxEmployeeDTO {
// 备注
private String bz;
private Double nzjj;
}

View File

@ -13,6 +13,11 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
public class PltxInitEmployeeParam {
/**
* 流程requestId
*/
Long requestId;
/**
* 个税扣缴义务人
*/

View File

@ -0,0 +1,106 @@
package com.engine.salary.entity.salaryacct.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @ClassName gwPltxSaveParam
* @author Harryxzy
* @date 2024/9/5 9:59
* @description 保存批量调薪明细表1信息
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class gwPltxSaveParam {
boolean isCreateNode;
/**
* 主键id
*/
Long id;
/**
* 流程id
*/
Long mainid;
/**
* 姓名
*/
Integer xm;
/**
* 部门
*/
Integer bm;
/**
* 岗位
*/
String gw;
/**
* 去年绩效分数
*/
BigDecimal qnjxfs;
/**
* 基本工资
*/
BigDecimal jbgz;
/**
* 调薪
*/
BigDecimal dx;
/**
* 调薪后基本工资
*/
BigDecimal dxhjbgz;
/**
* 调薪比例
*/
BigDecimal dxbl;
/**
* 个税扣缴义务人
*/
String gskjywr;
/**
* 合计薪资
*/
BigDecimal hjxz;
/**
* 调整后合计薪资
*/
BigDecimal dzhhjxz;
/**
* 合计薪资调整比例
*/
BigDecimal hjxzdzbl;
/**
* 备注
*/
String bz;
/**
* 年终奖金
*/
BigDecimal nzjj;
private Integer deleteType;
}

View File

@ -0,0 +1,36 @@
package com.engine.salary.entity.salaryacct.param;
import com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt1PO;
import com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt2PO;
import com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt3PO;
import com.engine.salary.entity.salaryacct.po.UfTxjlgljmbPO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author Harryxzy
* @ClassName pltxDetailsToModeSaveParam
* @date 2024/09/09 9:51
* @description 港湾批量调薪流程转建模
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class pltxDetailsToModeSaveParam {
// 主表数据
private UfTxjlgljmbPO txjlgljmb;
private List<UfTxjlgljmbDt1PO> dt1;
private List<UfTxjlgljmbDt2PO> dt2;
private UfTxjlgljmbDt3PO dt3;
}

View File

@ -0,0 +1,90 @@
package com.engine.salary.entity.salaryacct.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Collection;
/**
* @author Harryxzy
* @ClassName GwPltxDt1
* @date 2024/09/05 10:20
* @description 港湾批量调薪明细表1
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GwPltxDt1PO {
private Long id;
/**
* 流程id
*/
private Long mainid;
/**
* 姓名
*/
private Integer xm;
/**
* 部门
*/
private Integer bm;
/**
* 岗位
*/
private String gw;
/**
* 去年绩效分数
*/
private BigDecimal qnjxfs;
/**
* 基本工资
*/
private BigDecimal jbgz;
/**
* 调薪
*/
private BigDecimal dx;
/**
* 调薪后基本工资
*/
private BigDecimal dxhjbgz;
/**
* 调薪比例
*/
private BigDecimal dxbl;
/**
* 个税扣缴义务人
*/
private String gskjywr;
/**
* 合计薪资
*/
private BigDecimal hjxz;
/**
* 调整后合计薪资
*/
private BigDecimal dzhhjxz;
/**
* 合计薪资调整比例
*/
private BigDecimal hjxzdzbl;
/**
* 备注
*/
private String bz;
/**
* 年终奖金
*/
private BigDecimal nzjj;
private Integer deleteType;
//主键id集合
private Collection<Long> ids;
}

View File

@ -0,0 +1,43 @@
package com.engine.salary.entity.salaryacct.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Collection;
/**
* @author Harryxzy
* @ClassName UfTxjlgljmbDt1PO
* @date 2024/09/09 9:59
* @description 明细表1
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UfTxjlgljmbDt1PO {
private Integer bm;
private String bz;
private BigDecimal dx;
private BigDecimal dxbl;
private BigDecimal dxhjbgz;
private BigDecimal dzhhjxz;
private String gskjywr;
private String gw;
private BigDecimal hjgz;
private BigDecimal hjxzdzbl;
private Integer id;
private BigDecimal jbgz;
private Integer mainid;
private BigDecimal nzjj;
private BigDecimal qnjxfs;
private Integer Xm;
//主键id集合
private Collection<Long> ids;
}

View File

@ -0,0 +1,31 @@
package com.engine.salary.entity.salaryacct.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Collection;
/**
* @author Harryxzy
* @ClassName UfTxjlgljmbDt2PO
* @date 2024/09/09 10:00
* @description 明细表2
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UfTxjlgljmbDt2PO {
private Integer bm;
private BigDecimal dxze;
private BigDecimal hjxzze;
private Integer id;
private Integer mainid;
private Integer rs;
//主键id集合
private Collection<Long> ids;
}

View File

@ -0,0 +1,32 @@
package com.engine.salary.entity.salaryacct.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Collection;
/**
* @author Harryxzy
* @ClassName UfTxjlgljmbDt3PO
* @date 2024/09/09 10:04
* @description 明细表3
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UfTxjlgljmbDt3PO {
private Integer bm;
private BigDecimal dxbl;
private BigDecimal dxye;
private BigDecimal dxys;
private BigDecimal dxysyed;
private Integer id;
private Integer mainid;
//主键id集合
private Collection<Long> ids;
}

View File

@ -0,0 +1,52 @@
package com.engine.salary.entity.salaryacct.po;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
/**
* @author Harryxzy
* @ClassName UfTxjlgljmbPO
* @date 2024/09/09 9:58
* @description 调薪记录管理建模 主表
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UfTxjlgljmbPO {
private Integer dxcj;
private String dxdecjspr;
private String dxdlcjspr;
private String dxdsacjspr;
private String dxdsicjspr;
private String dxdwcjspr;
private String dxdycjspr;
private String formBizId;
private Integer formmodeid;
private Integer fqrbm;
private Integer fqrgs;
private String fqrq;
private Integer fqrxm;
private Integer id;
private String modedatacreatedate;
private Integer modedatacreater;
private Integer modedatacreatertype;
private String modedatacreatetime;
private Integer modedatamodifier;
private String modedatamodifydatetime;
private String modeuuid;
private Integer nd;
private Integer requestId;
private Integer spr;
private String Sxrq;
//主键id集合
private Collection<Long> ids;
}

View File

@ -344,7 +344,7 @@ public class SalaryArchiveExcelBO extends Service {
* @param importHandleParam
* @return
*/
public static boolean singleRowCheck(List<String> allTodoSalaryArchives, Map<String, Object> map, List<String> headers, int effectiveTimeIndex, List<Map<String, String>> excelComments, int errorCount, SalaryArchiveImportHandleParam importHandleParam, User user) {
public static boolean singleRowCheck(List<String> allTodoSalaryArchives, Map<String, Object> map, List<String> headers, int effectiveTimeIndex, List<Map<String, String>> excelComments, int errorCount, SalaryArchiveImportHandleParam importHandleParam, User user, boolean isGwpltxWorkflow, Map<Long, DataCollectionEmployee> empMap) {
//是否是流程
boolean process = importHandleParam.isProcess();
@ -352,6 +352,7 @@ public class SalaryArchiveExcelBO extends Service {
// String rowindex = "" + map.get("index") + "";
String rowindex = SalaryI18nUtil.getI18nLabel(user.getLanguage(),542129,"错误行") + map.get("index") + ":";
// 1.姓名
String userName = Optional.ofNullable(map.get(userNameI18n)).orElse("").toString();
String deparmentName = Optional.ofNullable(map.get(departmentI18n)).orElse("").toString();
@ -396,6 +397,18 @@ public class SalaryArchiveExcelBO extends Service {
employeeId = Long.valueOf(empId);
}
if (isGwpltxWorkflow) {
DataCollectionEmployee emp = empMap.get(employeeId);
if (emp == null) {
Map<String, String> errorMessageMap = Maps.newHashMap();
errorMessageMap.put("message","员工id"+ employeeId +"不存在");
excelComments.add(errorMessageMap);
isError = true;
return isError;
}
rowindex = SalaryI18nUtil.getI18nLabel(user.getLanguage(),542129,"错误行") + emp.getUsername() + ":";
}
if (employeeId == null) {
Map<String, String> errorMessageMap = Maps.newHashMap();
errorMessageMap.put("message", rowindex + SalaryI18nUtil.getI18nLabel(user.getLanguage(),544319, "查找人员失败,请确定姓名、部门、手机号正确且唯一"));
@ -667,7 +680,7 @@ public class SalaryArchiveExcelBO extends Service {
// 7.薪资项目列处理(待定薪\定薪的初始化\定薪的调薪)
} else {
isError = handleSalaryItem(isError, effectiveTimeIndex, excelComments, errorCount, j,
effectiveTime, finalSalaryArchive, adjustReason, importHandleParam, key.toString(), cellVal, map, user);
effectiveTime, finalSalaryArchive, adjustReason, importHandleParam, key.toString(), cellVal, map, user, rowindex);
}
}
@ -817,10 +830,11 @@ public class SalaryArchiveExcelBO extends Service {
public static boolean handleSalaryItem(boolean isError, int effectiveTimeIndex,
List<Map<String, String>> excelComments, int errorCount, int j,
Date effectiveTime, SalaryArchivePO finalSalaryArchive, String salaryItemAdjustReason, SalaryArchiveImportHandleParam importHandleParam,
String key, String cellVal, Map<String, Object> map, User user) {
String key, String cellVal, Map<String, Object> map, User user, String rowindex) {
// String rowindex = "" + map.get("index") + "";
String rowindex = SalaryI18nUtil.getI18nLabel(user.getLanguage(),542129,"错误行") + map.get("index") + ":";
// String rowindex = SalaryI18nUtil.getI18nLabel(user.getLanguage(),542129,"错误行") + map.get("index") + ":";
// 薪资项目数据
if (isError || importHandleParam.isSuspendList() || (importHandleParam.isSalaryItemAdjust() && effectiveTime == null) || finalSalaryArchive == null) {
return isError;

View File

@ -23,6 +23,9 @@ import java.util.Map;
@NoArgsConstructor
@AllArgsConstructor
public class SalaryArchiveImportActionParam {
// 是否是港湾批量调薪流程
boolean gwpltxWorkflow;
/**
* 导入类型
*

View File

@ -293,10 +293,12 @@
e.departmentid as departmentId,
d.DEPARTMENTNAME as departmentName,
e.jobtitle as jobtitleId,
c.jobtitlename as jobtitleName,
e.managerid as managerid,
f.field${yggx} as yggx
from hrmresource e
left join hrmdepartment d on e.departmentid = d.id
left join hrmjobtitles c on e.jobtitle = c.id
left join cus_fielddata f on f.id = e.id and f.SCOPEID=3
where e.status not in (7)
and (e.accounttype is null or e.accounttype = 0)

View File

@ -0,0 +1,78 @@
package com.engine.salary.mapper.salaryacct;
import com.engine.salary.entity.salaryacct.param.gwPltxSaveParam;
import com.engine.salary.entity.salaryacct.po.GwPltxDt1PO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Harryxzy
* @ClassName GwPltxDt1Mapper
* @date 2024/09/08 20:11
* @description
*/
public interface GwPltxDt1Mapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<GwPltxDt1PO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<GwPltxDt1PO> listSome(GwPltxDt1PO gwPltxDt1);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
GwPltxDt1PO getById(Long id);
/**
* 新增忽略null字段
*
* @param gwPltxDt1 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(GwPltxDt1PO gwPltxDt1);
/**
* 修改修改所有字段
*
* @param gwPltxDt1 修改的记录
* @return 返回影响行数
*/
int update(GwPltxDt1PO gwPltxDt1);
/**
* 修改忽略null字段
*
* @param gwPltxDt1 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(GwPltxDt1PO gwPltxDt1);
/**
* 删除记录
*
* @param gwPltxDt1 待删除的记录
* @return 返回影响行数
*/
int delete(GwPltxDt1PO gwPltxDt1);
void batchInsert(@Param("collection") List<gwPltxSaveParam> list);
void batchUpdate(@Param("collection")List<gwPltxSaveParam> list);
void deleteByIds(@Param("ids")List<Long> list);
}

View File

@ -0,0 +1,529 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.salaryacct.GwPltxDt1Mapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryacct.po.GwPltxDt1PO">
<result column="id" property="id" />
<result column="mainid" property="mainid" />
<result column="xm" property="xm" />
<result column="bm" property="bm" />
<result column="gw" property="gw" />
<result column="qnjxfs" property="qnjxfs" />
<result column="jbgz" property="jbgz" />
<result column="dx" property="dx" />
<result column="dxhjbgz" property="dxhjbgz" />
<result column="dxbl" property="dxbl" />
<result column="gskjywr" property="gskjywr" />
<result column="hjxz" property="hjxz" />
<result column="dzhhjxz" property="dzhhjxz" />
<result column="hjxzdzbl" property="hjxzdzbl" />
<result column="bz" property="bz" />
<result column="nzjj" property="nzjj" />
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t.id
, t.mainid
, t.xm
, t.bm
, t.gw
, t.qnjxfs
, t.jbgz
, t.dx
, t.dxhjbgz
, t.dxbl
, t.gskjywr
, t.hjxz
, t.dzhhjxz
, t.hjxzdzbl
, t.bz
, t.nzjj
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns" />
FROM hrsa_gw_pltx_dt1 t
WHERE delete_type = 0
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT
<include refid="baseColumns" />
FROM hrsa_gw_pltx_dt1 t
WHERE id = #{id} AND delete_type = 0 order by id
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.salaryacct.po.GwPltxDt1PO">
SELECT
<include refid="baseColumns" />
FROM hrsa_gw_pltx_dt1 t
WHERE delete_type = 0
<if test="id != null">
AND id = #{id}
</if>
<if test="mainid != null">
AND mainid = #{mainid}
</if>
<if test="xm != null">
AND xm = #{xm}
</if>
<if test="bm != null">
AND bm = #{bm}
</if>
<if test="gw != null">
AND gw = #{gw}
</if>
<if test="qnjxfs != null">
AND qnjxfs = #{qnjxfs}
</if>
<if test="jbgz != null">
AND jbgz = #{jbgz}
</if>
<if test="dx != null">
AND dx = #{dx}
</if>
<if test="dxhjbgz != null">
AND dxhjbgz = #{dxhjbgz}
</if>
<if test="dxbl != null">
AND dxbl = #{dxbl}
</if>
<if test="gskjywr != null">
AND gskjywr = #{gskjywr}
</if>
<if test="hjxz != null">
AND hjxz = #{hjxz}
</if>
<if test="dzhhjxz != null">
AND dzhhjxz = #{dzhhjxz}
</if>
<if test="hjxzdzbl != null">
AND hjxzdzbl = #{hjxzdzbl}
</if>
<if test="bz != null">
AND bz = #{bz}
</if>
<if test="nzjj != null">
AND nzjj = #{nzjj}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.GwPltxDt1PO">
INSERT INTO hrsa_gw_pltx_dt1
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="mainid != null">
mainid,
</if>
<if test="xm != null">
xm,
</if>
<if test="bm != null">
bm,
</if>
<if test="gw != null">
gw,
</if>
<if test="qnjxfs != null">
qnjxfs,
</if>
<if test="jbgz != null">
jbgz,
</if>
<if test="dx != null">
dx,
</if>
<if test="dxhjbgz != null">
dxhjbgz,
</if>
<if test="dxbl != null">
dxbl,
</if>
<if test="gskjywr != null">
gskjywr,
</if>
<if test="hjxz != null">
hjxz,
</if>
<if test="dzhhjxz != null">
dzhhjxz,
</if>
<if test="hjxzdzbl != null">
hjxzdzbl,
</if>
<if test="bz != null">
bz,
</if>
<if test="nzjj != null">
nzjj,
</if>
<if test="deleteType != null">
delete_type,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="id != null" >
#{id},
</if>
<if test="mainid != null" >
#{mainid},
</if>
<if test="xm != null" >
#{xm},
</if>
<if test="bm != null" >
#{bm},
</if>
<if test="gw != null" >
#{gw},
</if>
<if test="qnjxfs != null" >
#{qnjxfs},
</if>
<if test="jbgz != null" >
#{jbgz},
</if>
<if test="dx != null" >
#{dx},
</if>
<if test="dxhjbgz != null" >
#{dxhjbgz},
</if>
<if test="dxbl != null" >
#{dxbl},
</if>
<if test="gskjywr != null" >
#{gskjywr},
</if>
<if test="hjxz != null" >
#{hjxz},
</if>
<if test="dzhhjxz != null" >
#{dzhhjxz},
</if>
<if test="hjxzdzbl != null" >
#{hjxzdzbl},
</if>
<if test="bz != null" >
#{bz},
</if>
<if test="nzjj != null" >
#{nzjj},
</if>
<if test="deleteType != null" >
#{deleteType},
</if>
</trim>
</insert>
<insert id="batchInsert">
INSERT INTO hrsa_gw_pltx_dt1(
id,
mainid,
xm,
bm,
gw,
qnjxfs,
jbgz,
dx,
dxhjbgz,
dxbl,
gskjywr,
hjxz,
dzhhjxz,
hjxzdzbl,
bz,
nzjj,
delete_type
)
VALUES
<foreach collection="collection" item="item" separator=",">
(
#{item.id},
#{item.mainid},
#{item.xm},
#{item.bm},
#{item.gw},
#{item.qnjxfs},
#{item.jbgz},
#{item.dx},
#{item.dxhjbgz},
#{item.dxbl},
#{item.gskjywr},
#{item.hjxz},
#{item.dzhhjxz},
#{item.hjxzdzbl},
#{item.bz},
#{item.nzjj},
#{item.deleteType}
)
</foreach>
</insert>
<insert id="batchInsert" databaseId="sqlserver">
<foreach collection="collection" item="item" separator=";">
INSERT INTO hrsa_gw_pltx_dt1(
id,
mainid,
xm,
bm,
gw,
qnjxfs,
jbgz,
dx,
dxhjbgz,
dxbl,
gskjywr,
hjxz,
dzhhjxz,
hjxzdzbl,
bz,
nzjj,
delete_type
)
VALUES
(
#{item.id},
#{item.mainid},
#{item.xm},
#{item.bm},
#{item.gw},
#{item.qnjxfs},
#{item.jbgz},
#{item.dx},
#{item.dxhjbgz},
#{item.dxbl},
#{item.gskjywr},
#{item.hjxz},
#{item.dzhhjxz},
#{item.hjxzdzbl},
#{item.bz},
#{item.nzjj},
#{item.deleteType}
)
</foreach>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.salaryacct.po.GwPltxDt1PO">
UPDATE hrsa_gw_pltx_dt1
<set>
mainid=#{mainid},
xm=#{xm},
bm=#{bm},
gw=#{gw},
qnjxfs=#{qnjxfs},
jbgz=#{jbgz},
dx=#{dx},
dxhjbgz=#{dxhjbgz},
dxbl=#{dxbl},
gskjywr=#{gskjywr},
hjxz=#{hjxz},
dzhhjxz=#{dzhhjxz},
hjxzdzbl=#{hjxzdzbl},
bz=#{bz},
nzjj=#{nzjj},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.GwPltxDt1PO">
UPDATE hrsa_gw_pltx_dt1
<set>
<if test="mainid != null" >
mainid=#{mainid},
</if>
<if test="xm != null" >
xm=#{xm},
</if>
<if test="bm != null" >
bm=#{bm},
</if>
<if test="gw != null" >
gw=#{gw},
</if>
<if test="qnjxfs != null" >
qnjxfs=#{qnjxfs},
</if>
<if test="jbgz != null" >
jbgz=#{jbgz},
</if>
<if test="dx != null" >
dx=#{dx},
</if>
<if test="dxhjbgz != null" >
dxhjbgz=#{dxhjbgz},
</if>
<if test="dxbl != null" >
dxbl=#{dxbl},
</if>
<if test="gskjywr != null" >
gskjywr=#{gskjywr},
</if>
<if test="hjxz != null" >
hjxz=#{hjxz},
</if>
<if test="dzhhjxz != null" >
dzhhjxz=#{dzhhjxz},
</if>
<if test="hjxzdzbl != null" >
hjxzdzbl=#{hjxzdzbl},
</if>
<if test="bz != null" >
bz=#{bz},
</if>
<if test="nzjj != null" >
nzjj=#{nzjj},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
<update id="batchUpdate" parameterType="java.util.List">
update hrsa_gw_pltx_dt1
<trim prefix="set" suffixOverrides=",">
<trim prefix="xm =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.xm!=null">
when id=#{item.id} then #{item.xm}
</if>
</foreach>
</trim>
<trim prefix="bm =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.bm!=null">
when id=#{item.id} then #{item.bm}
</if>
</foreach>
</trim>
<trim prefix="gw =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.gw!=null">
when id=#{item.id} then #{item.gw}
</if>
</foreach>
</trim>
<trim prefix="qnjxfs =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.qnjxfs!=null">
when id=#{item.id} then #{item.qnjxfs}
</if>
</foreach>
</trim>
<trim prefix="jbgz =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.jbgz!=null">
when id=#{item.id} then #{item.jbgz}
</if>
</foreach>
</trim>
<trim prefix="dx =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.dx!=null">
when id=#{item.id} then #{item.dx}
</if>
</foreach>
</trim>
<trim prefix="dxhjbgz =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.dxhjbgz!=null">
when id=#{item.id} then #{item.dxhjbgz}
</if>
</foreach>
</trim>
<trim prefix="dxbl =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.dxbl!=null">
when id=#{item.id} then #{item.dxbl}
</if>
</foreach>
</trim>
<trim prefix="gskjywr =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.gskjywr!=null">
when id=#{item.id} then #{item.gskjywr}
</if>
</foreach>
</trim>
<trim prefix="hjxz =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.hjxz!=null">
when id=#{item.id} then #{item.hjxz}
</if>
</foreach>
</trim>
<trim prefix="dzhhjxz =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.dzhhjxz!=null">
when id=#{item.id} then #{item.dzhhjxz}
</if>
</foreach>
</trim>
<trim prefix="hjxzdzbl =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.hjxzdzbl!=null">
when id=#{item.id} then #{item.hjxzdzbl}
</if>
</foreach>
</trim>
<trim prefix="bz =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.bz!=null">
when id=#{item.id} then #{item.bz}
</if>
</foreach>
</trim>
<trim prefix="nzjj =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.nzjj!=null">
when id=#{item.id} then #{item.nzjj}
</if>
</foreach>
</trim>
</trim>
where
id in
<foreach collection="collection" item="item" index="index" separator="," open="(" close=")">
#{item.id}
</foreach>
</update>
<!-- 根据主键删除记录 -->
<delete id="delete" parameterType="com.engine.salary.entity.salaryacct.po.GwPltxDt1PO">
UPDATE hrsa_gw_pltx_dt1
SET delete_type=1
WHERE id = #{id} AND delete_type = 0
</delete>
<delete id="deleteByIds">
UPDATE hrsa_gw_pltx_dt1
SET delete_type=1
WHERE delete_type = 0
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
</delete>
</mapper>

View File

@ -0,0 +1,70 @@
package com.engine.salary.mapper.salaryacct;
import com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt1PO;
import java.util.List;
/**
* @author Harryxzy
* @ClassName UfTxjlgljmbDt1Mapper
* @date 2024/09/09 10:05
* @description
*/
public interface UfTxjlgljmbDt1Mapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<UfTxjlgljmbDt1PO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<UfTxjlgljmbDt1PO> listSome(UfTxjlgljmbDt1PO ufTxjlgljmbDt1);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
UfTxjlgljmbDt1PO getById(Integer id);
/**
* 新增忽略null字段
*
* @param ufTxjlgljmbDt1 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(UfTxjlgljmbDt1PO ufTxjlgljmbDt1);
/**
* 修改修改所有字段
*
* @param ufTxjlgljmbDt1 修改的记录
* @return 返回影响行数
*/
int update(UfTxjlgljmbDt1PO ufTxjlgljmbDt1);
/**
* 修改忽略null字段
*
* @param ufTxjlgljmbDt1 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(UfTxjlgljmbDt1PO ufTxjlgljmbDt1);
/**
* 删除记录
*
* @param ufTxjlgljmbDt1 待删除的记录
* @return 返回影响行数
*/
int delete(UfTxjlgljmbDt1PO ufTxjlgljmbDt1);
}

View File

@ -0,0 +1,304 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.salaryacct.UfTxjlgljmbDt1Mapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt1PO">
<result column="bm" property="bm" />
<result column="bz" property="bz" />
<result column="dx" property="dx" />
<result column="dxbl" property="dxbl" />
<result column="dxhjbgz" property="dxhjbgz" />
<result column="dzhhjxz" property="dzhhjxz" />
<result column="gskjywr" property="gskjywr" />
<result column="gw" property="gw" />
<result column="hjgz" property="hjgz" />
<result column="hjxzdzbl" property="hjxzdzbl" />
<result column="id" property="id" />
<result column="jbgz" property="jbgz" />
<result column="mainid" property="mainid" />
<result column="nzjj" property="nzjj" />
<result column="qnjxfs" property="qnjxfs" />
<result column="Xm" property="Xm" />
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t.bm
, t.bz
, t.dx
, t.dxbl
, t.dxhjbgz
, t.dzhhjxz
, t.gskjywr
, t.gw
, t.hjgz
, t.hjxzdzbl
, t.id
, t.jbgz
, t.mainid
, t.nzjj
, t.qnjxfs
, t.Xm
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb_dt1 t
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Integer">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb_dt1 t
WHERE id = #{id}
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt1PO">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb_dt1 t
WHERE 1 = 1
<if test="bm != null">
AND bm = #{bm}
</if>
<if test="bz != null">
AND bz = #{bz}
</if>
<if test="dx != null">
AND dx = #{dx}
</if>
<if test="dxbl != null">
AND dxbl = #{dxbl}
</if>
<if test="dxhjbgz != null">
AND dxhjbgz = #{dxhjbgz}
</if>
<if test="dzhhjxz != null">
AND dzhhjxz = #{dzhhjxz}
</if>
<if test="gskjywr != null">
AND gskjywr = #{gskjywr}
</if>
<if test="gw != null">
AND gw = #{gw}
</if>
<if test="hjgz != null">
AND hjgz = #{hjgz}
</if>
<if test="hjxzdzbl != null">
AND hjxzdzbl = #{hjxzdzbl}
</if>
<if test="jbgz != null">
AND jbgz = #{jbgz}
</if>
<if test="mainid != null">
AND mainid = #{mainid}
</if>
<if test="nzjj != null">
AND nzjj = #{nzjj}
</if>
<if test="qnjxfs != null">
AND qnjxfs = #{qnjxfs}
</if>
<if test="Xm != null">
AND Xm = #{Xm}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt1PO">
INSERT INTO uf_txjlgljmb_dt1
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="bm != null">
bm,
</if>
<if test="bz != null">
bz,
</if>
<if test="dx != null">
dx,
</if>
<if test="dxbl != null">
dxbl,
</if>
<if test="dxhjbgz != null">
dxhjbgz,
</if>
<if test="dzhhjxz != null">
dzhhjxz,
</if>
<if test="gskjywr != null">
gskjywr,
</if>
<if test="gw != null">
gw,
</if>
<if test="hjgz != null">
hjgz,
</if>
<if test="hjxzdzbl != null">
hjxzdzbl,
</if>
<if test="jbgz != null">
jbgz,
</if>
<if test="mainid != null">
mainid,
</if>
<if test="nzjj != null">
nzjj,
</if>
<if test="qnjxfs != null">
qnjxfs,
</if>
<if test="Xm != null">
Xm,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="bm != null" >
#{bm},
</if>
<if test="bz != null" >
#{bz},
</if>
<if test="dx != null" >
#{dx},
</if>
<if test="dxbl != null" >
#{dxbl},
</if>
<if test="dxhjbgz != null" >
#{dxhjbgz},
</if>
<if test="dzhhjxz != null" >
#{dzhhjxz},
</if>
<if test="gskjywr != null" >
#{gskjywr},
</if>
<if test="gw != null" >
#{gw},
</if>
<if test="hjgz != null" >
#{hjgz},
</if>
<if test="hjxzdzbl != null" >
#{hjxzdzbl},
</if>
<if test="jbgz != null" >
#{jbgz},
</if>
<if test="mainid != null" >
#{mainid},
</if>
<if test="nzjj != null" >
#{nzjj},
</if>
<if test="qnjxfs != null" >
#{qnjxfs},
</if>
<if test="Xm != null" >
#{Xm},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt1PO">
UPDATE uf_txjlgljmb_dt1
<set>
bm=#{bm},
bz=#{bz},
dx=#{dx},
dxbl=#{dxbl},
dxhjbgz=#{dxhjbgz},
dzhhjxz=#{dzhhjxz},
gskjywr=#{gskjywr},
gw=#{gw},
hjgz=#{hjgz},
hjxzdzbl=#{hjxzdzbl},
jbgz=#{jbgz},
mainid=#{mainid},
nzjj=#{nzjj},
qnjxfs=#{qnjxfs},
Xm=#{Xm},
</set>
WHERE id = #{id}
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt1PO">
UPDATE uf_txjlgljmb_dt1
<set>
<if test="bm != null" >
bm=#{bm},
</if>
<if test="bz != null" >
bz=#{bz},
</if>
<if test="dx != null" >
dx=#{dx},
</if>
<if test="dxbl != null" >
dxbl=#{dxbl},
</if>
<if test="dxhjbgz != null" >
dxhjbgz=#{dxhjbgz},
</if>
<if test="dzhhjxz != null" >
dzhhjxz=#{dzhhjxz},
</if>
<if test="gskjywr != null" >
gskjywr=#{gskjywr},
</if>
<if test="gw != null" >
gw=#{gw},
</if>
<if test="hjgz != null" >
hjgz=#{hjgz},
</if>
<if test="hjxzdzbl != null" >
hjxzdzbl=#{hjxzdzbl},
</if>
<if test="jbgz != null" >
jbgz=#{jbgz},
</if>
<if test="mainid != null" >
mainid=#{mainid},
</if>
<if test="nzjj != null" >
nzjj=#{nzjj},
</if>
<if test="qnjxfs != null" >
qnjxfs=#{qnjxfs},
</if>
<if test="Xm != null" >
Xm=#{Xm},
</if>
</set>
WHERE id = #{id}
</update>
<!-- 根据主键删除记录 -->
<delete id="delete" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt1PO">
delete from uf_txjlgljmb_dt1
WHERE id = #{id}
</delete>
</mapper>

View File

@ -0,0 +1,71 @@
package com.engine.salary.mapper.salaryacct;
import com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt2PO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Harryxzy
* @ClassName UfTxjlgljmbDt2Mapper
* @date 2024/09/09 10:06
* @description
*/
public interface UfTxjlgljmbDt2Mapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<UfTxjlgljmbDt2PO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<UfTxjlgljmbDt2PO> listSome(UfTxjlgljmbDt2PO ufTxjlgljmbDt2);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
UfTxjlgljmbDt2PO getById(Integer id);
/**
* 新增忽略null字段
*
* @param ufTxjlgljmbDt2 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(UfTxjlgljmbDt2PO ufTxjlgljmbDt2);
/**
* 修改修改所有字段
*
* @param ufTxjlgljmbDt2 修改的记录
* @return 返回影响行数
*/
int update(UfTxjlgljmbDt2PO ufTxjlgljmbDt2);
/**
* 修改忽略null字段
*
* @param ufTxjlgljmbDt2 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(UfTxjlgljmbDt2PO ufTxjlgljmbDt2);
/**
* 删除记录
*
* @param ufTxjlgljmbDt2 待删除的记录
* @return 返回影响行数
*/
int delete(UfTxjlgljmbDt2PO ufTxjlgljmbDt2);
void deleteByMainId(@Param("mainId")Integer mainId);
}

View File

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.salaryacct.UfTxjlgljmbDt2Mapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt2PO">
<result column="bm" property="bm" />
<result column="dxze" property="dxze" />
<result column="hjxzze" property="hjxzze" />
<result column="id" property="id" />
<result column="mainid" property="mainid" />
<result column="rs" property="rs" />
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t.bm
, t.dxze
, t.hjxzze
, t.id
, t.mainid
, t.rs
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb_dt2 t
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Integer">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb_dt2 t
WHERE id = #{id}
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt2PO">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb_dt2 t
WHERE 1 = 1
<if test="bm != null">
AND bm = #{bm}
</if>
<if test="dxze != null">
AND dxze = #{dxze}
</if>
<if test="hjxzze != null">
AND hjxzze = #{hjxzze}
</if>
<if test="mainid != null">
AND mainid = #{mainid}
</if>
<if test="rs != null">
AND rs = #{rs}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt2PO">
INSERT INTO uf_txjlgljmb_dt2
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="bm != null">
bm,
</if>
<if test="dxze != null">
dxze,
</if>
<if test="hjxzze != null">
hjxzze,
</if>
<if test="mainid != null">
mainid,
</if>
<if test="rs != null">
rs,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="bm != null" >
#{bm},
</if>
<if test="dxze != null" >
#{dxze},
</if>
<if test="hjxzze != null" >
#{hjxzze},
</if>
<if test="mainid != null" >
#{mainid},
</if>
<if test="rs != null" >
#{rs},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt2PO">
UPDATE uf_txjlgljmb_dt2
<set>
bm=#{bm},
dxze=#{dxze},
hjxzze=#{hjxzze},
mainid=#{mainid},
rs=#{rs},
</set>
WHERE id = #{id}
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt2PO">
UPDATE uf_txjlgljmb_dt2
<set>
<if test="bm != null" >
bm=#{bm},
</if>
<if test="dxze != null" >
dxze=#{dxze},
</if>
<if test="hjxzze != null" >
hjxzze=#{hjxzze},
</if>
<if test="mainid != null" >
mainid=#{mainid},
</if>
<if test="rs != null" >
rs=#{rs},
</if>
</set>
WHERE id = #{id}
</update>
<!-- 根据主键删除记录 -->
<delete id="delete" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt2PO">
delete from uf_txjlgljmb_dt2
WHERE id = #{id}
</delete>
<delete id="deleteByMainId">
delete from uf_txjlgljmb_dt2 where mainid = #{mainId}
</delete>
</mapper>

View File

@ -0,0 +1,72 @@
package com.engine.salary.mapper.salaryacct;
import com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt3PO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Harryxzy
* @ClassName UfTxjlgljmbDt3Mapper
* @date 2024/09/09 10:06
* @description
*/
public interface UfTxjlgljmbDt3Mapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<UfTxjlgljmbDt3PO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<UfTxjlgljmbDt3PO> listSome(UfTxjlgljmbDt3PO ufTxjlgljmbDt3);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
UfTxjlgljmbDt3PO getById(Integer id);
/**
* 新增忽略null字段
*
* @param ufTxjlgljmbDt3 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(UfTxjlgljmbDt3PO ufTxjlgljmbDt3);
/**
* 修改修改所有字段
*
* @param ufTxjlgljmbDt3 修改的记录
* @return 返回影响行数
*/
int update(UfTxjlgljmbDt3PO ufTxjlgljmbDt3);
/**
* 修改忽略null字段
*
* @param ufTxjlgljmbDt3 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(UfTxjlgljmbDt3PO ufTxjlgljmbDt3);
/**
* 删除记录
*
* @param ufTxjlgljmbDt3 待删除的记录
* @return 返回影响行数
*/
int delete(UfTxjlgljmbDt3PO ufTxjlgljmbDt3);
void deleteByMainId(@Param("mainId") Integer mainId);
}

View File

@ -0,0 +1,173 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.salaryacct.UfTxjlgljmbDt3Mapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt3PO">
<result column="bm" property="bm" />
<result column="dxbl" property="dxbl" />
<result column="dxye" property="dxye" />
<result column="dxys" property="dxys" />
<result column="dxysyed" property="dxysyed" />
<result column="id" property="id" />
<result column="mainid" property="mainid" />
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t.bm
, t.dxbl
, t.dxye
, t.dxys
, t.dxysyed
, t.id
, t.mainid
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb_dt3 t
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Integer">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb_dt3 t
WHERE id = #{id}
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt3PO">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb_dt3 t
WHERE 1 = 1
<if test="bm != null">
AND bm = #{bm}
</if>
<if test="dxbl != null">
AND dxbl = #{dxbl}
</if>
<if test="dxye != null">
AND dxye = #{dxye}
</if>
<if test="dxys != null">
AND dxys = #{dxys}
</if>
<if test="dxysyed != null">
AND dxysyed = #{dxysyed}
</if>
<if test="mainid != null">
AND mainid = #{mainid}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt3PO">
INSERT INTO uf_txjlgljmb_dt3
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="bm != null">
bm,
</if>
<if test="dxbl != null">
dxbl,
</if>
<if test="dxye != null">
dxye,
</if>
<if test="dxys != null">
dxys,
</if>
<if test="dxysyed != null">
dxysyed,
</if>
<if test="mainid != null">
mainid,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="bm != null" >
#{bm},
</if>
<if test="dxbl != null" >
#{dxbl},
</if>
<if test="dxye != null" >
#{dxye},
</if>
<if test="dxys != null" >
#{dxys},
</if>
<if test="dxysyed != null" >
#{dxysyed},
</if>
<if test="mainid != null" >
#{mainid},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt3PO">
UPDATE uf_txjlgljmb_dt3
<set>
bm=#{bm},
dxbl=#{dxbl},
dxye=#{dxye},
dxys=#{dxys},
dxysyed=#{dxysyed},
mainid=#{mainid},
</set>
WHERE id = #{id}
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt3PO">
UPDATE uf_txjlgljmb_dt3
<set>
<if test="bm != null" >
bm=#{bm},
</if>
<if test="dxbl != null" >
dxbl=#{dxbl},
</if>
<if test="dxye != null" >
dxye=#{dxye},
</if>
<if test="dxys != null" >
dxys=#{dxys},
</if>
<if test="dxysyed != null" >
dxysyed=#{dxysyed},
</if>
<if test="mainid != null" >
mainid=#{mainid},
</if>
</set>
WHERE id = #{id}
</update>
<!-- 根据主键删除记录 -->
<delete id="delete" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbDt3PO">
delete from uf_txjlgljmb_dt3
WHERE id = #{id}
</delete>
<delete id="deleteByMainId">
delete from uf_txjlgljmb_dt3 where mainid=#{mainId}
</delete>
</mapper>

View File

@ -0,0 +1,68 @@
package com.engine.salary.mapper.salaryacct;
import com.engine.salary.entity.salaryacct.po.UfTxjlgljmbPO;
import java.util.List;
/**
* @author Harryxzy
* @ClassName UfTxjlgljmbMapper
* @date 2024/09/09 10:05
* @description
*/
public interface UfTxjlgljmbMapper {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
List<UfTxjlgljmbPO> listAll();
/**
* 条件查询
*
* @return 返回集合没有返回空List
*/
List<UfTxjlgljmbPO> listSome(UfTxjlgljmbPO ufTxjlgljmb);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
UfTxjlgljmbPO getById(Integer id);
/**
* 新增忽略null字段
*
* @param ufTxjlgljmb 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(UfTxjlgljmbPO ufTxjlgljmb);
/**
* 修改修改所有字段
*
* @param ufTxjlgljmb 修改的记录
* @return 返回影响行数
*/
int update(UfTxjlgljmbPO ufTxjlgljmb);
/**
* 修改忽略null字段
*
* @param ufTxjlgljmb 修改的记录
* @return 返回影响行数
*/
int updateIgnoreNull(UfTxjlgljmbPO ufTxjlgljmb);
/**
* 删除记录
*
* @param ufTxjlgljmb 待删除的记录
* @return 返回影响行数
*/
int delete(UfTxjlgljmbPO ufTxjlgljmb);
}

View File

@ -0,0 +1,441 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.salaryacct.UfTxjlgljmbMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbPO">
<result column="dxcj" property="dxcj" />
<result column="dxdecjspr" property="dxdecjspr" />
<result column="dxdlcjspr" property="dxdlcjspr" />
<result column="dxdsacjspr" property="dxdsacjspr" />
<result column="dxdsicjspr" property="dxdsicjspr" />
<result column="dxdwcjspr" property="dxdwcjspr" />
<result column="dxdycjspr" property="dxdycjspr" />
<result column="form_biz_id" property="formBizId" />
<result column="formmodeid" property="formmodeid" />
<result column="fqrbm" property="fqrbm" />
<result column="fqrgs" property="fqrgs" />
<result column="fqrq" property="fqrq" />
<result column="fqrxm" property="fqrxm" />
<result column="id" property="id" />
<result column="modedatacreatedate" property="modedatacreatedate" />
<result column="modedatacreater" property="modedatacreater" />
<result column="modedatacreatertype" property="modedatacreatertype" />
<result column="modedatacreatetime" property="modedatacreatetime" />
<result column="modedatamodifier" property="modedatamodifier" />
<result column="modedatamodifydatetime" property="modedatamodifydatetime" />
<result column="MODEUUID" property="modeuuid" />
<result column="nd" property="nd" />
<result column="requestId" property="requestId" />
<result column="spr" property="spr" />
<result column="Sxrq" property="Sxrq" />
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t.dxcj
, t.dxdecjspr
, t.dxdlcjspr
, t.dxdsacjspr
, t.dxdsicjspr
, t.dxdwcjspr
, t.dxdycjspr
, t.form_biz_id
, t.formmodeid
, t.fqrbm
, t.fqrgs
, t.fqrq
, t.fqrxm
, t.id
, t.modedatacreatedate
, t.modedatacreater
, t.modedatacreatertype
, t.modedatacreatetime
, t.modedatamodifier
, t.modedatamodifydatetime
, t.MODEUUID
, t.nd
, t.requestId
, t.spr
, t.Sxrq
</sql>
<!-- 查询全部 -->
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb t
</select>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Integer">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb t
WHERE id = #{id}
</select>
<!-- 条件查询 -->
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbPO">
SELECT
<include refid="baseColumns" />
FROM uf_txjlgljmb t
WHERE 1 = 1
<if test="dxcj != null">
AND dxcj = #{dxcj}
</if>
<if test="dxdecjspr != null">
AND dxdecjspr = #{dxdecjspr}
</if>
<if test="dxdlcjspr != null">
AND dxdlcjspr = #{dxdlcjspr}
</if>
<if test="dxdsacjspr != null">
AND dxdsacjspr = #{dxdsacjspr}
</if>
<if test="dxdsicjspr != null">
AND dxdsicjspr = #{dxdsicjspr}
</if>
<if test="dxdwcjspr != null">
AND dxdwcjspr = #{dxdwcjspr}
</if>
<if test="dxdycjspr != null">
AND dxdycjspr = #{dxdycjspr}
</if>
<if test="formBizId != null">
AND form_biz_id = #{formBizId}
</if>
<if test="formmodeid != null">
AND formmodeid = #{formmodeid}
</if>
<if test="fqrbm != null">
AND fqrbm = #{fqrbm}
</if>
<if test="fqrgs != null">
AND fqrgs = #{fqrgs}
</if>
<if test="fqrq != null">
AND fqrq = #{fqrq}
</if>
<if test="fqrxm != null">
AND fqrxm = #{fqrxm}
</if>
<if test="modedatacreatedate != null">
AND modedatacreatedate = #{modedatacreatedate}
</if>
<if test="modedatacreater != null">
AND modedatacreater = #{modedatacreater}
</if>
<if test="modedatacreatertype != null">
AND modedatacreatertype = #{modedatacreatertype}
</if>
<if test="modedatacreatetime != null">
AND modedatacreatetime = #{modedatacreatetime}
</if>
<if test="modedatamodifier != null">
AND modedatamodifier = #{modedatamodifier}
</if>
<if test="modedatamodifydatetime != null">
AND modedatamodifydatetime = #{modedatamodifydatetime}
</if>
<if test="modeuuid != null">
AND MODEUUID = #{modeuuid}
</if>
<if test="nd != null">
AND nd = #{nd}
</if>
<if test="requestId != null">
AND requestId = #{requestId}
</if>
<if test="spr != null">
AND spr = #{spr}
</if>
<if test="Sxrq != null">
AND Sxrq = #{Sxrq}
</if>
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbPO"
keyProperty="id" keyColumn="id" useGeneratedKeys="true">
INSERT INTO uf_txjlgljmb
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="dxcj != null">
dxcj,
</if>
<if test="dxdecjspr != null">
dxdecjspr,
</if>
<if test="dxdlcjspr != null">
dxdlcjspr,
</if>
<if test="dxdsacjspr != null">
dxdsacjspr,
</if>
<if test="dxdsicjspr != null">
dxdsicjspr,
</if>
<if test="dxdwcjspr != null">
dxdwcjspr,
</if>
<if test="dxdycjspr != null">
dxdycjspr,
</if>
<if test="formBizId != null">
form_biz_id,
</if>
<if test="formmodeid != null">
formmodeid,
</if>
<if test="fqrbm != null">
fqrbm,
</if>
<if test="fqrgs != null">
fqrgs,
</if>
<if test="fqrq != null">
fqrq,
</if>
<if test="fqrxm != null">
fqrxm,
</if>
<if test="modedatacreatedate != null">
modedatacreatedate,
</if>
<if test="modedatacreater != null">
modedatacreater,
</if>
<if test="modedatacreatertype != null">
modedatacreatertype,
</if>
<if test="modedatacreatetime != null">
modedatacreatetime,
</if>
<if test="modedatamodifier != null">
modedatamodifier,
</if>
<if test="modedatamodifydatetime != null">
modedatamodifydatetime,
</if>
<if test="modeuuid != null">
MODEUUID,
</if>
<if test="nd != null">
nd,
</if>
<if test="requestId != null">
requestId,
</if>
<if test="spr != null">
spr,
</if>
<if test="Sxrq != null">
Sxrq,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="dxcj != null" >
#{dxcj},
</if>
<if test="dxdecjspr != null" >
#{dxdecjspr},
</if>
<if test="dxdlcjspr != null" >
#{dxdlcjspr},
</if>
<if test="dxdsacjspr != null" >
#{dxdsacjspr},
</if>
<if test="dxdsicjspr != null" >
#{dxdsicjspr},
</if>
<if test="dxdwcjspr != null" >
#{dxdwcjspr},
</if>
<if test="dxdycjspr != null" >
#{dxdycjspr},
</if>
<if test="formBizId != null" >
#{formBizId},
</if>
<if test="formmodeid != null" >
#{formmodeid},
</if>
<if test="fqrbm != null" >
#{fqrbm},
</if>
<if test="fqrgs != null" >
#{fqrgs},
</if>
<if test="fqrq != null" >
#{fqrq},
</if>
<if test="fqrxm != null" >
#{fqrxm},
</if>
<if test="modedatacreatedate != null" >
#{modedatacreatedate},
</if>
<if test="modedatacreater != null" >
#{modedatacreater},
</if>
<if test="modedatacreatertype != null" >
#{modedatacreatertype},
</if>
<if test="modedatacreatetime != null" >
#{modedatacreatetime},
</if>
<if test="modedatamodifier != null" >
#{modedatamodifier},
</if>
<if test="modedatamodifydatetime != null" >
#{modedatamodifydatetime},
</if>
<if test="modeuuid != null" >
#{modeuuid},
</if>
<if test="nd != null" >
#{nd},
</if>
<if test="requestId != null" >
#{requestId},
</if>
<if test="spr != null" >
#{spr},
</if>
<if test="Sxrq != null" >
#{Sxrq},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbPO">
UPDATE uf_txjlgljmb
<set>
dxcj=#{dxcj},
dxdecjspr=#{dxdecjspr},
dxdlcjspr=#{dxdlcjspr},
dxdsacjspr=#{dxdsacjspr},
dxdsicjspr=#{dxdsicjspr},
dxdwcjspr=#{dxdwcjspr},
dxdycjspr=#{dxdycjspr},
form_biz_id=#{formBizId},
formmodeid=#{formmodeid},
fqrbm=#{fqrbm},
fqrgs=#{fqrgs},
fqrq=#{fqrq},
fqrxm=#{fqrxm},
modedatacreatedate=#{modedatacreatedate},
modedatacreater=#{modedatacreater},
modedatacreatertype=#{modedatacreatertype},
modedatacreatetime=#{modedatacreatetime},
modedatamodifier=#{modedatamodifier},
modedatamodifydatetime=#{modedatamodifydatetime},
MODEUUID=#{modeuuid},
nd=#{nd},
requestId=#{requestId},
spr=#{spr},
Sxrq=#{Sxrq},
</set>
WHERE id = #{id}
</update>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbPO">
UPDATE uf_txjlgljmb
<set>
<if test="dxcj != null" >
dxcj=#{dxcj},
</if>
<if test="dxdecjspr != null" >
dxdecjspr=#{dxdecjspr},
</if>
<if test="dxdlcjspr != null" >
dxdlcjspr=#{dxdlcjspr},
</if>
<if test="dxdsacjspr != null" >
dxdsacjspr=#{dxdsacjspr},
</if>
<if test="dxdsicjspr != null" >
dxdsicjspr=#{dxdsicjspr},
</if>
<if test="dxdwcjspr != null" >
dxdwcjspr=#{dxdwcjspr},
</if>
<if test="dxdycjspr != null" >
dxdycjspr=#{dxdycjspr},
</if>
<if test="formBizId != null" >
form_biz_id=#{formBizId},
</if>
<if test="formmodeid != null" >
formmodeid=#{formmodeid},
</if>
<if test="fqrbm != null" >
fqrbm=#{fqrbm},
</if>
<if test="fqrgs != null" >
fqrgs=#{fqrgs},
</if>
<if test="fqrq != null" >
fqrq=#{fqrq},
</if>
<if test="fqrxm != null" >
fqrxm=#{fqrxm},
</if>
<if test="modedatacreatedate != null" >
modedatacreatedate=#{modedatacreatedate},
</if>
<if test="modedatacreater != null" >
modedatacreater=#{modedatacreater},
</if>
<if test="modedatacreatertype != null" >
modedatacreatertype=#{modedatacreatertype},
</if>
<if test="modedatacreatetime != null" >
modedatacreatetime=#{modedatacreatetime},
</if>
<if test="modedatamodifier != null" >
modedatamodifier=#{modedatamodifier},
</if>
<if test="modedatamodifydatetime != null" >
modedatamodifydatetime=#{modedatamodifydatetime},
</if>
<if test="modeuuid != null" >
MODEUUID=#{modeuuid},
</if>
<if test="nd != null" >
nd=#{nd},
</if>
<if test="requestId != null" >
requestId=#{requestId},
</if>
<if test="spr != null" >
spr=#{spr},
</if>
<if test="Sxrq != null" >
Sxrq=#{Sxrq},
</if>
</set>
WHERE id = #{id}
</update>
<!-- 根据主键删除记录 -->
<delete id="delete" parameterType="com.engine.salary.entity.salaryacct.po.UfTxjlgljmbPO">
delete from uf_txjlgljmb
WHERE id = #{id}
</delete>
</mapper>

View File

@ -0,0 +1,79 @@
package com.engine.salary.service;
import com.engine.salary.entity.salaryacct.param.gwPltxSaveParam;
import com.engine.salary.entity.salaryacct.po.GwPltxDt1PO;
import java.util.List;
/**
* @author Harryxzy
* @ClassName GwPltxDt1Service
* @date 2024/09/08 20:13
* @description
*/
public interface GwPltxDt1Service {
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
public List<GwPltxDt1PO> listAll();
List<GwPltxDt1PO> listSome(GwPltxDt1PO param);
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
public GwPltxDt1PO getById(Long id);
/**
* 新增忽略null字段
*
* @param gwPltxDt1 新增的记录
* @return 返回影响行数
*/
public int insertIgnoreNull(GwPltxDt1PO gwPltxDt1);
/**
* 修改修改所有字段
*
* @param gwPltxDt1 修改的记录
* @return 返回影响行数
*/
public int update(GwPltxDt1PO gwPltxDt1);
/**
* 修改忽略null字段
*
* @param gwPltxDt1 修改的记录
* @return 返回影响行数
*/
public int updateIgnoreNull(GwPltxDt1PO gwPltxDt1);
/**
* 删除记录
*
* @param gwPltxDt1 待删除的记录
* @return 返回影响行数
*/
public int delete(GwPltxDt1PO gwPltxDt1);
/**
* 批量插入
* @param needSaveList
*/
void batchInsert(List<gwPltxSaveParam> needSaveList);
/**
* 批量更新
* @param needUpdatelist
*/
void batchUpdate(List<gwPltxSaveParam> needUpdatelist);
void deleteByIds(List<Long> needDeleteIds);
}

View File

@ -4,6 +4,7 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultDetailDTO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultListColumnDTO;
import com.engine.salary.entity.salaryacct.dto.pltxEmployeeDTO;
import com.engine.salary.entity.salaryacct.param.*;
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
import com.engine.salary.util.page.PageInfo;
@ -225,4 +226,23 @@ public interface SalaryAcctResultService {
* @return
*/
Map<String, Object> fygsdReport(SalaryAcctRecordQueryParam param);
/**
* 保存批量调薪明细表1信息
* @param saveParam
*/
void pltxSaveDetails(List<gwPltxSaveParam> saveParam);
/**
* 批量调薪明细列表
* @param param
* @return
*/
List<pltxEmployeeDTO> pltxDetailsList(PltxInitEmployeeParam param);
/**
* 流程转建模
* @param saveParam
*/
void pltxDetailsToMode(pltxDetailsToModeSaveParam saveParam);
}

View File

@ -0,0 +1,111 @@
package com.engine.salary.service.impl;
import com.engine.core.impl.Service;
import com.engine.salary.entity.salaryacct.param.gwPltxSaveParam;
import com.engine.salary.entity.salaryacct.po.GwPltxDt1PO;
import com.engine.salary.mapper.salaryacct.GwPltxDt1Mapper;
import com.engine.salary.service.GwPltxDt1Service;
import com.engine.salary.util.db.MapperProxyFactory;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
/**
* @author Harryxzy
* @ClassName GwPltxDt1ServiceImpl
* @date 2024/09/08 20:13
* @description
*/
public class GwPltxDt1ServiceImpl extends Service implements GwPltxDt1Service {
private GwPltxDt1Mapper getGwPltxDt1Mapper() {
return MapperProxyFactory.getProxy(GwPltxDt1Mapper.class);
}
/**
* 查询所有记录
*
* @return 返回集合没有返回空List
*/
public List<GwPltxDt1PO> listAll() {
return getGwPltxDt1Mapper().listAll();
}
@Override
public List<GwPltxDt1PO> listSome(GwPltxDt1PO param) {
return getGwPltxDt1Mapper().listSome(param);
}
/**
* 根据主键查询
*
* @param id 主键
* @return 返回记录没有返回null
*/
public GwPltxDt1PO getById(Long id) {
return getGwPltxDt1Mapper().getById(id);
}
/**
* 新增忽略null字段
*
* @param gwPltxDt1 新增的记录
* @return 返回影响行数
*/
public int insertIgnoreNull(GwPltxDt1PO gwPltxDt1) {
return getGwPltxDt1Mapper().insertIgnoreNull(gwPltxDt1);
}
/**
* 修改修改所有字段
*
* @param gwPltxDt1 修改的记录
* @return 返回影响行数
*/
public int update(GwPltxDt1PO gwPltxDt1) {
return getGwPltxDt1Mapper().update(gwPltxDt1);
}
/**
* 修改忽略null字段
*
* @param gwPltxDt1 修改的记录
* @return 返回影响行数
*/
public int updateIgnoreNull(GwPltxDt1PO gwPltxDt1) {
return getGwPltxDt1Mapper().updateIgnoreNull(gwPltxDt1);
}
/**
* 删除记录
*
* @param gwPltxDt1 待删除的记录
* @return 返回影响行数
*/
public int delete(GwPltxDt1PO gwPltxDt1) {
return getGwPltxDt1Mapper().delete(gwPltxDt1);
}
@Override
public void batchInsert(List<gwPltxSaveParam> needSaveList) {
List<List<gwPltxSaveParam>> partition = Lists.partition(needSaveList, 100);
partition.forEach(list -> getGwPltxDt1Mapper().batchInsert(list));
}
@Override
public void batchUpdate(List<gwPltxSaveParam> needUpdatelist) {
List<List<gwPltxSaveParam>> partition = Lists.partition(needUpdatelist, 100);
partition.forEach(list -> getGwPltxDt1Mapper().batchUpdate(list));
}
@Override
public void deleteByIds(List<Long> needDeleteIds) {
if (CollectionUtils.isEmpty(needDeleteIds)) {
return;
}
List<List<Long>> partition = Lists.partition(needDeleteIds, 100);
partition.forEach(list -> getGwPltxDt1Mapper().deleteByIds(list));
}
}

View File

@ -1802,6 +1802,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
.employeeName(emp.getUsername())
.bmId(emp.getDepartmentId())
.bmName(emp.getDepartmentName())
.jobTitleId(emp.getJobtitleId())
.jobTitleName(emp.getJobtitleName())
.gskjywr(rs.getString("gskjywr"))
.qnjxfs(rs.getDouble("qnjxfs") == -1 ? null : rs.getDouble("qnjxfs"))
.jbgz(rs.getDouble("jbgz") == -1 ? null : rs.getDouble("jbgz"))
@ -1810,6 +1812,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
.dxbl(rs.getDouble("dxbl") == -1 ? null : rs.getDouble("dxbl"))
.hjgz(rs.getDouble("hjgz") == -1 ? null : rs.getDouble("hjgz"))
.bz(rs.getString("bz"))
.nzjj(rs.getDouble("nzjj") == -1 ? null : rs.getDouble("nzjj"))
.build());
}
}
@ -1930,11 +1933,26 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
SalaryArchiveItemPO itemPO = jxgzArchiveItemList.get(0);
jxgz = Double.valueOf(StringUtils.isEmpty(itemPO.getItemValue()) ? "0" : itemPO.getItemValue());
}
// 获取员工信息
DataCollectionEmployee emp = getSalaryEmployeeService(user).getEmployeeById(salaryArchiveItemPO.getEmployeeId());
int lastYear = new Integer(param.getSxrq()) - 1;
RecordSet rs = new RecordSet();
rs.execute("select jxjg,ygxm from uf_jxjjmb where nd = '" + lastYear +"' and ygxm in ( "+ salaryArchiveItemPO.getEmployeeId() + " )");
double jxjg = 0;
if (rs.next()) {
jxjg = rs.getDouble("jxjg") == -1 ? 0 : rs.getDouble("jxjg");
}
return pltxEmployeeDTO.builder()
.employee(salaryArchiveItemPO.getEmployeeId())
.employeeName(emp.getUsername())
.bmId(emp.getDepartmentId())
.bmName(emp.getDepartmentName())
.jobTitleId(emp.getJobtitleId())
.jobTitleName(emp.getJobtitleName())
.gskjywr(param.getGskjywr())
.jbgz(jbgz)
.hjgz(jbgz+gwgz+jxgz)
.qnjxfs(jxjg)
.build();
}

View File

@ -29,13 +29,14 @@ import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.SalaryValueTypeEnum;
import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.common.FilterEnum;
import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum;
import com.engine.salary.enums.salaryaccounting.LockStatusEnum;
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
import com.engine.salary.enums.salaryaccounting.SalaryAcctResultDataSourceEnum;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.salaryacct.SalaryAcctResultMapper;
import com.engine.salary.mapper.salaryacct.*;
import com.engine.salary.report.service.SalaryStatisticsReportService;
import com.engine.salary.report.service.impl.SalaryStatisticsReportServiceImpl;
import com.engine.salary.service.*;
@ -55,6 +56,7 @@ import com.engine.salary.util.valid.ValidUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.weaver.general.TimeUtil;
import com.weaver.util.threadPool.ThreadPoolUtil;
import com.weaver.util.threadPool.constant.ModulePoolEnum;
import com.weaver.util.threadPool.entity.LocalRunnable;
@ -66,12 +68,14 @@ import org.apache.commons.lang3.math.NumberUtils;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.util.StopWatch;
import weaver.conn.RecordSet;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.BlockingDeque;
@ -197,6 +201,27 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user);
}
private GwPltxDt1Service getGwPltxDt1Service(User user) {
return ServiceUtil.getService(GwPltxDt1ServiceImpl.class, user);
}
private SalaryAcctExcelService getSalaryAcctExcelService(User user) {
return ServiceUtil.getService(SalaryAcctExcelServiceImpl.class, user);
}
private UfTxjlgljmbMapper getUfTxjlgljmbMapper() {
return MapperProxyFactory.getProxy(UfTxjlgljmbMapper.class);
}
private UfTxjlgljmbDt1Mapper getUfTxjlgljmbDt1Mapper() {
return MapperProxyFactory.getProxy(UfTxjlgljmbDt1Mapper.class);
}
private UfTxjlgljmbDt2Mapper getUfTxjlgljmbDt2Mapper() {
return MapperProxyFactory.getProxy(UfTxjlgljmbDt2Mapper.class);
}
private UfTxjlgljmbDt3Mapper getUfTxjlgljmbDt3Mapper() {
return MapperProxyFactory.getProxy(UfTxjlgljmbDt3Mapper.class);
}
private SalaryCheckResultService salaryCheckResultService;
@ -1745,4 +1770,268 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
return list;
}
@Override
public void pltxSaveDetails(List<gwPltxSaveParam> saveParam) {
if (CollectionUtils.isEmpty(saveParam)) {
return;
}
Optional<gwPltxSaveParam> mainIdNull = saveParam.stream().filter(param -> param.getMainid() == null).findFirst();
if (mainIdNull.isPresent()) {
throw new SalaryRunTimeException("流程id不能为空");
}
boolean isCreateNode = saveParam.get(0).isCreateNode();
Long mainId = saveParam.get(0).getMainid();
// 保存的明细数据
List<gwPltxSaveParam> needSaveList = saveParam.stream().filter(param -> param.getId() == null).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(needSaveList)) {
// 封装调薪后基本工资
needSaveList.stream().forEach( param -> {
param.setId(IdGenerator.generate());
param.setDeleteType(0);
BigDecimal dxValue = param.getDx() == null ? new BigDecimal(0) : param.getDx();
BigDecimal jbgzValue = (param.getJbgz() == null || param.getJbgz().equals(BigDecimal.ZERO)) ? new BigDecimal("0") : param.getJbgz();
param.setDxhjbgz(jbgzValue.add(dxValue));
});
getGwPltxDt1Service(user).batchInsert(needSaveList);
}
// 修改的明细数据
List<gwPltxSaveParam> needUpdateList = saveParam.stream().filter(param -> param.getId() != null).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(needUpdateList)) {
// 获取现有数据
List<GwPltxDt1PO> gwPltxDt1POS = getGwPltxDt1Service(user).listSome(GwPltxDt1PO.builder().mainid(needUpdateList.get(0).getMainid()).build());
Map<Long, GwPltxDt1PO> oldPOMap = SalaryEntityUtil.convert2Map(gwPltxDt1POS, GwPltxDt1PO::getId);
needUpdateList.stream().forEach( param -> {
GwPltxDt1PO oldValue = oldPOMap.get(param.getId());
oldValue.setXm(param.getXm());
oldValue.setBm(param.getBm());
oldValue.setGw(param.getGw());
oldValue.setQnjxfs(param.getQnjxfs());
oldValue.setJbgz(param.getJbgz());
oldValue.setDx(param.getDx());
oldValue.setDxbl(param.getDxbl());
oldValue.setGskjywr(param.getGskjywr());
oldValue.setHjxz(param.getHjxz());
oldValue.setDzhhjxz(param.getDzhhjxz());
oldValue.setHjxzdzbl(param.getHjxzdzbl());
oldValue.setBz(param.getBz());
oldValue.setNzjj(param.getNzjj());
oldValue.setDeleteType(0);
BigDecimal dxValue = param.getDx() == null ? new BigDecimal(0) : param.getDx();
BigDecimal jbgzValue = (param.getJbgz() == null || param.getJbgz().equals(BigDecimal.ZERO)) ? new BigDecimal("0") : param.getJbgz();
oldValue.setDxhjbgz(jbgzValue.add(dxValue));
getGwPltxDt1Service(user).update(oldValue);
});
}
if (isCreateNode) {
// 创建节点处理需要删除的数据
List<GwPltxDt1PO> gwPltxDt1POS = getGwPltxDt1Service(user).listSome(GwPltxDt1PO.builder().mainid(mainId).build());
if (CollectionUtils.isNotEmpty(gwPltxDt1POS)) {
List<Long> existIds = gwPltxDt1POS.stream().map(GwPltxDt1PO::getId).collect(Collectors.toList());
if (CollectionUtils.isEmpty(needUpdateList)) {
// 删除所有数据
getGwPltxDt1Service(user).deleteByIds(existIds);
} else {
List<Long> updateIds = needUpdateList.stream().map(gwPltxSaveParam::getId).collect(Collectors.toList());
List<Long> needDeleteIds = existIds.stream().filter(id -> !updateIds.contains(id)).collect(Collectors.toList());
getGwPltxDt1Service(user).deleteByIds(needDeleteIds);
}
}
}
}
@Override
public List<pltxEmployeeDTO> pltxDetailsList(PltxInitEmployeeParam param) {
if (param.getTxcj() == null || param.getSpr() == null) {
throw new SalaryRunTimeException("参数错误,调薪层级不存在");
}
if (param.getRequestId() == null ) {
throw new SalaryRunTimeException("参数错误requestid不存在");
}
// 如果是创建人,则可以查看所有数据
RecordSet rs = new RecordSet();
rs.execute("select creater from workflow_requestbase where requestid = " + param.getRequestId());
boolean isCreator = false;
if (rs.next()) {
int creater = rs.getInt("creater");
if (creater == param.getSpr()) {
isCreator = true;
}
}
List<GwPltxDt1PO> gwPltxDt1POS = getGwPltxDt1Service(user).listSome(GwPltxDt1PO.builder().mainid(param.getRequestId()).build());
// 获取能够管理的权限
List<pltxEmployeeDTO> pltxEmployeeDTOS = getSalaryAcctExcelService(user).pltxFilterData(PltxInitEmployeeParam.builder().txcj(param.getTxcj()).spr(param.getSpr()).build());
List<Long> canManageEmpIds = pltxEmployeeDTOS.stream().map(pltxEmployeeDTO::getEmployee).collect(Collectors.toList());
if (!isCreator && CollectionUtils.isEmpty(canManageEmpIds)) {
// 不是创建人也没有管理权限
return Collections.emptyList();
}
if (!isCreator) {
// 不是创建人,要分权
gwPltxDt1POS = gwPltxDt1POS.stream().filter(po -> canManageEmpIds.contains(Long.valueOf(po.getXm()))).collect(Collectors.toList());
}
Map<Long, DataCollectionEmployee> empMap = SalaryEntityUtil.convert2Map(getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ORG), DataCollectionEmployee::getEmployeeId);
return gwPltxDt1POS.stream()
.map(po -> {
Long empId = Long.valueOf(po.getXm());
DataCollectionEmployee emp = empMap.getOrDefault(empId, DataCollectionEmployee.builder().username("").departmentName("").departmentId(0L).build());
return pltxEmployeeDTO.builder()
.id(po.getId())
.employee(empId)
.employeeName(emp.getUsername())
.bmId(emp.getDepartmentId())
.bmName(emp.getDepartmentName())
.jobTitleId(emp.getJobtitleId())
.jobTitleName(emp.getJobtitleName())
.gskjywr(po.getGskjywr())
.qnjxfs(po.getQnjxfs() == null ? null : po.getQnjxfs().doubleValue())
.jbgz(po.getJbgz() == null ? null : po.getJbgz().doubleValue())
.dx(po.getDx() == null ? null : po.getDx().doubleValue())
.dxhjbgz(po.getDxhjbgz() == null ? null : po.getDxhjbgz().doubleValue())
.dxbl(po.getDxbl() == null ? null : po.getDxbl().doubleValue())
.hjgz(po.getHjxz() == null ? null : po.getHjxz().doubleValue())
.nzjj(po.getNzjj() == null ? null : po.getNzjj().doubleValue())
.bz(po.getBz())
.build();
}).collect(Collectors.toList());
}
@Override
public void pltxDetailsToMode(pltxDetailsToModeSaveParam saveParam) {
// 处理主表, 先根据年度查询是否存在,若存在则更新
Integer nd = saveParam.getTxjlgljmb().getNd();
List<UfTxjlgljmbPO> ufTxjlgljmbPOS = getUfTxjlgljmbMapper().listSome(UfTxjlgljmbPO.builder().nd(nd).build());
Integer mainId = 0;
BaseBean baseBean = new BaseBean();
Integer fieldValue = Integer.valueOf( baseBean.getPropValue("shgwSalary", "pltx_mode_field_id"));
String currDate = TimeUtil.getCurrentDateString();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String currTime = sdf.format(new Date());
if (CollectionUtils.isNotEmpty(ufTxjlgljmbPOS)) {
// 更新
UfTxjlgljmbPO txjlgljmb = saveParam.getTxjlgljmb();
UfTxjlgljmbPO ufTxjlgljmbPO = ufTxjlgljmbPOS.get(0);
ufTxjlgljmbPO.setFqrxm(txjlgljmb.getFqrxm());
ufTxjlgljmbPO.setFqrq(txjlgljmb.getFqrq());
ufTxjlgljmbPO.setFqrbm(txjlgljmb.getFqrbm());
ufTxjlgljmbPO.setFqrgs(txjlgljmb.getFqrgs());
ufTxjlgljmbPO.setSxrq(txjlgljmb.getSxrq());
ufTxjlgljmbPO.setSpr(txjlgljmb.getSpr());
ufTxjlgljmbPO.setDxcj(txjlgljmb.getDxcj());
ufTxjlgljmbPO.setDxdycjspr(txjlgljmb.getDxdycjspr());
ufTxjlgljmbPO.setDxdecjspr(txjlgljmb.getDxdecjspr());
ufTxjlgljmbPO.setDxdsacjspr(txjlgljmb.getDxdsacjspr());
ufTxjlgljmbPO.setDxdsicjspr(txjlgljmb.getDxdsicjspr());
ufTxjlgljmbPO.setDxdwcjspr(txjlgljmb.getDxdwcjspr());
ufTxjlgljmbPO.setDxdlcjspr(txjlgljmb.getDxdlcjspr());
ufTxjlgljmbPO.setNd(txjlgljmb.getNd());
getUfTxjlgljmbMapper().update(ufTxjlgljmbPO);
mainId = ufTxjlgljmbPO.getId();
} else {
// 新增
UfTxjlgljmbPO txjlgljmb = saveParam.getTxjlgljmb();
UfTxjlgljmbPO ufTxjlgljmbPO = new UfTxjlgljmbPO();
ufTxjlgljmbPO.setFqrxm(txjlgljmb.getFqrxm());
ufTxjlgljmbPO.setFqrq(txjlgljmb.getFqrq());
ufTxjlgljmbPO.setFqrbm(txjlgljmb.getFqrbm());
ufTxjlgljmbPO.setFqrgs(txjlgljmb.getFqrgs());
ufTxjlgljmbPO.setSxrq(txjlgljmb.getSxrq());
ufTxjlgljmbPO.setSpr(txjlgljmb.getSpr());
ufTxjlgljmbPO.setDxcj(txjlgljmb.getDxcj());
ufTxjlgljmbPO.setDxdycjspr(txjlgljmb.getDxdycjspr());
ufTxjlgljmbPO.setDxdecjspr(txjlgljmb.getDxdecjspr());
ufTxjlgljmbPO.setDxdsacjspr(txjlgljmb.getDxdsacjspr());
ufTxjlgljmbPO.setDxdsicjspr(txjlgljmb.getDxdsicjspr());
ufTxjlgljmbPO.setDxdwcjspr(txjlgljmb.getDxdwcjspr());
ufTxjlgljmbPO.setDxdlcjspr(txjlgljmb.getDxdlcjspr());
ufTxjlgljmbPO.setNd(txjlgljmb.getNd());
ufTxjlgljmbPO.setFormmodeid(fieldValue);
ufTxjlgljmbPO.setModedatacreater(1);
ufTxjlgljmbPO.setModedatacreatertype(0);
ufTxjlgljmbPO.setModedatacreatedate(currDate);
ufTxjlgljmbPO.setModedatacreatetime(currTime);
getUfTxjlgljmbMapper().insertIgnoreNull(ufTxjlgljmbPO);
mainId = ufTxjlgljmbPO.getId();
}
ModeRightInfo ModeRightInfo = new ModeRightInfo();
ModeRightInfo.setNewRight(true);
ModeRightInfo.editModeDataShare(1, fieldValue,mainId);
Integer finalMainId = mainId;
// 处理明细表1,先根据主表id查,再根据姓名更新
List<UfTxjlgljmbDt1PO> dt1POS = getUfTxjlgljmbDt1Mapper().listSome(UfTxjlgljmbDt1PO.builder().mainid(mainId).build());
Map<Integer, UfTxjlgljmbDt1PO> dt1MapByXm = SalaryEntityUtil.convert2Map(dt1POS, UfTxjlgljmbDt1PO::getXm);
saveParam.getDt1().stream().forEach(dt1 -> {
UfTxjlgljmbDt1PO dt1PO = dt1MapByXm.get(dt1.getXm());
BigDecimal jbgzValue = (dt1.getJbgz() == null) ? new BigDecimal("0") : dt1.getJbgz();
BigDecimal dxValue = (dt1.getDx() == null) ? new BigDecimal("0") : dt1.getDx();
if (dt1PO == null) {
// 新增
UfTxjlgljmbDt1PO ufTxjlgljmbDt1PO = new UfTxjlgljmbDt1PO();
ufTxjlgljmbDt1PO.setMainid(finalMainId);
ufTxjlgljmbDt1PO.setXm(dt1.getXm());
ufTxjlgljmbDt1PO.setBm(dt1.getBm());
ufTxjlgljmbDt1PO.setGw(dt1.getGw());
ufTxjlgljmbDt1PO.setQnjxfs(dt1.getQnjxfs());
ufTxjlgljmbDt1PO.setJbgz(dt1.getJbgz());
ufTxjlgljmbDt1PO.setDx(dt1.getDx());
ufTxjlgljmbDt1PO.setDxhjbgz(jbgzValue.add(dxValue));
ufTxjlgljmbDt1PO.setDxbl(dt1.getDxbl());
ufTxjlgljmbDt1PO.setGskjywr(dt1.getGskjywr());
ufTxjlgljmbDt1PO.setDzhhjxz(dt1.getDzhhjxz());
ufTxjlgljmbDt1PO.setHjxzdzbl(dt1.getHjxzdzbl());
ufTxjlgljmbDt1PO.setBz(dt1.getBz());
ufTxjlgljmbDt1PO.setHjgz(dt1.getHjgz());
ufTxjlgljmbDt1PO.setNzjj(dt1.getNzjj());
getUfTxjlgljmbDt1Mapper().insertIgnoreNull(ufTxjlgljmbDt1PO);
} else {
// 更新
dt1PO.setXm(dt1.getXm());
dt1PO.setBm(dt1.getBm());
dt1PO.setGw(dt1.getGw());
dt1PO.setQnjxfs(dt1.getQnjxfs());
dt1PO.setJbgz(dt1.getJbgz());
dt1PO.setDx(dt1.getDx());
dt1PO.setDxhjbgz(jbgzValue.add(dxValue));
dt1PO.setDxbl(dt1.getDxbl());
dt1PO.setGskjywr(dt1.getGskjywr());
dt1PO.setDzhhjxz(dt1.getDzhhjxz());
dt1PO.setHjxzdzbl(dt1.getHjxzdzbl());
dt1PO.setBz(dt1.getBz());
dt1PO.setHjgz(dt1.getHjgz());
dt1PO.setNzjj(dt1.getNzjj());
getUfTxjlgljmbDt1Mapper().update(dt1PO);
}
});
// 处理明细表2,覆盖,先删除后添加
if (saveParam.getDt2() != null) {
getUfTxjlgljmbDt2Mapper().deleteByMainId(mainId);
saveParam.getDt2().stream().forEach(dt2 -> {
UfTxjlgljmbDt2PO ufTxjlgljmbDt2PO = new UfTxjlgljmbDt2PO();
ufTxjlgljmbDt2PO.setMainid(finalMainId);
ufTxjlgljmbDt2PO.setBm(dt2.getBm());
ufTxjlgljmbDt2PO.setRs(dt2.getRs());
ufTxjlgljmbDt2PO.setDxze(dt2.getDxze());
ufTxjlgljmbDt2PO.setHjxzze(dt2.getHjxzze());
getUfTxjlgljmbDt2Mapper().insertIgnoreNull(ufTxjlgljmbDt2PO);
});
}
// 处理明细表3,覆盖,先删除后添加
if (saveParam.getDt3() != null) {
getUfTxjlgljmbDt3Mapper().deleteByMainId(mainId);
if (saveParam.getDt3() != null) {
saveParam.getDt3().setMainid(finalMainId);
getUfTxjlgljmbDt3Mapper().insertIgnoreNull(saveParam.getDt3());
}
}
}
}

View File

@ -505,7 +505,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
map = data.get(i);
map.put("index", i + 2);
// 3.校验行内容
boolean isError = SalaryArchiveExcelBO.singleRowCheck(allTodoSalaryArchives, map, headers, effectiveTimeIndex, excelComments, errorCount, importHandleParam, user);
boolean isError = SalaryArchiveExcelBO.singleRowCheck(allTodoSalaryArchives, map, headers, effectiveTimeIndex, excelComments, errorCount, importHandleParam, user, false, Collections.emptyMap());
if (isError) {
errorCount += 1;
// 添加错误数据
@ -586,6 +586,8 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
// 错误sheet数据
List<Map<String, Object>> errorData = new ArrayList<>();
List<DataCollectionEmployee> employeeList = getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ALL);
Map<Long, DataCollectionEmployee> empMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId);
for (int i = 0; i < data.size(); i++) {
Map<String, Object> map = data.get(i);
@ -613,7 +615,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
map = data.get(i);
map.put("index", i + 2);
// 3.校验行内容
boolean isError = SalaryArchiveExcelBO.singleRowCheck(allTodoSalaryArchives, map, headers, effectiveTimeIndex, excelComments, errorCount, importHandleParam, user);
boolean isError = SalaryArchiveExcelBO.singleRowCheck(allTodoSalaryArchives, map, headers, effectiveTimeIndex, excelComments, errorCount, importHandleParam, user, param.isGwpltxWorkflow(), empMap);
if (isError) {
errorCount += 1;
// 添加错误数据

View File

@ -964,6 +964,52 @@ public class SalaryAcctController {
}
/**********************************上海港湾 批量调薪流程 end*********************************/
/**********************************上海港湾 批量调薪流程 NEW start********************************/
/**
* 保存批量调薪明细表1信息
* @param request
* @param response
* @return
*/
@POST
@Path("/pltxSaveDetails")
@Produces(MediaType.APPLICATION_JSON)
public String pltxSaveDetails(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List<gwPltxSaveParam> saveParam) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<List<gwPltxSaveParam>, String>(user).run(getSalaryAcctResultWrapper(user)::pltxSaveDetails, saveParam);
}
/**
* 获取批量调薪明细表1数据
* @param request
* @param response
* @return
*/
@POST
@Path("/pltxDetailsList")
@Produces(MediaType.APPLICATION_JSON)
public String pltxDetailsList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PltxInitEmployeeParam param) {
User user = HrmUserVarify.getUser(request, response);
param.setSpr(user.getUID());
return new ResponseResult<PltxInitEmployeeParam, List<pltxEmployeeDTO>>(user).run(getSalaryAcctResultWrapper(user)::pltxDetailsList, param);
}
/**
* 批量调薪明细表 流程转建模
* @param request
* @param response
* @return
*/
@POST
@Path("/pltxDetailsToMode")
@Produces(MediaType.APPLICATION_JSON)
public String pltxDetailsList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody pltxDetailsToModeSaveParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<pltxDetailsToModeSaveParam, String>(user).run(getSalaryAcctResultWrapper(user)::pltxDetailsToMode, param);
}
/**********************************上海港湾 批量调薪流程 NEW end*********************************/
/**********************************上海港湾 薪酬报表 start*********************************/
// 港湾费用归属地报表
@POST

View File

@ -9,6 +9,7 @@ import com.engine.salary.entity.progress.ProgressDTO;
import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultDetailDTO;
import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultListColumnDTO;
import com.engine.salary.entity.salaryacct.dto.pltxEmployeeDTO;
import com.engine.salary.entity.salaryacct.param.*;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import com.engine.salary.exception.SalaryRunTimeException;
@ -283,6 +284,22 @@ public class SalaryAcctResultWrapper extends Service {
return getSalaryAcctResultService(user).fygsdReport(param);
}
/**
* 保存批量调薪明细表1信息
* @param saveParam
*/
public void pltxSaveDetails(List<gwPltxSaveParam> saveParam) {
getSalaryAcctResultService(user).pltxSaveDetails(saveParam);
}
public List<pltxEmployeeDTO> pltxDetailsList(PltxInitEmployeeParam param) {
return getSalaryAcctResultService(user).pltxDetailsList(param);
}
public void pltxDetailsToMode(pltxDetailsToModeSaveParam saveParam) {
getSalaryAcctResultService(user).pltxDetailsToMode(saveParam);
}
/**
* 薪资核算-校验
*