线下对比
This commit is contained in:
parent
d521bf5bf7
commit
151fa2b575
|
|
@ -0,0 +1,65 @@
|
|||
package com.engine.salary.entity.salarysql;
|
||||
|
||||
import com.engine.salary.entity.salarysql.po.SQLVar;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ExpressSQL {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* 模块
|
||||
*/
|
||||
private String module;
|
||||
/**
|
||||
* 用途
|
||||
*/
|
||||
private String useFor;
|
||||
|
||||
/**
|
||||
* 扩展参数
|
||||
*/
|
||||
private String extendParam;
|
||||
/**
|
||||
* sql内容
|
||||
*/
|
||||
private String sql;
|
||||
|
||||
/**
|
||||
* sql实际运行脚本
|
||||
*/
|
||||
private String sqlRunScript;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private Long creator;
|
||||
/**
|
||||
* 是否删除0否1是
|
||||
*/
|
||||
private Integer deleteType;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
private List<SQLVar> parameters;
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
package com.engine.salary.entity.salarysql.po;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SQLPO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* 模块
|
||||
*/
|
||||
private String module;
|
||||
/**
|
||||
* 用途
|
||||
*/
|
||||
private String useFor;
|
||||
|
||||
/**
|
||||
* 扩展参数
|
||||
*/
|
||||
private String extendParam;
|
||||
/**
|
||||
* sql内容
|
||||
*/
|
||||
private String sql;
|
||||
|
||||
/**
|
||||
* sql实际运行脚本
|
||||
*/
|
||||
private String sqlRunScript;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private Long creator;
|
||||
/**
|
||||
* 是否删除0否1是
|
||||
*/
|
||||
private Integer deleteType;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
private List<SQLVar> parameters;
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
package com.engine.salary.entity.salarysql.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SQLVar {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* SQLid
|
||||
*/
|
||||
private Long SQLId;
|
||||
/**
|
||||
* 字段id
|
||||
*/
|
||||
private String fieldId;
|
||||
/**
|
||||
* 字段名称
|
||||
*/
|
||||
private String fieldName;
|
||||
/**
|
||||
* 字段类型,number,string
|
||||
*/
|
||||
private String fieldType;
|
||||
/**
|
||||
* 来源
|
||||
*/
|
||||
private String source;
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Integer orderIndex;
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private Long creator;
|
||||
/**
|
||||
* 是否删除,0否1是
|
||||
*/
|
||||
private Integer deleteType;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
//值
|
||||
private String content;
|
||||
}
|
||||
|
|
@ -15,7 +15,8 @@ import java.util.Objects;
|
|||
public enum SalaryValueTypeEnum implements BaseEnum<Integer> {
|
||||
|
||||
INPUT(1, "输入", 84976),
|
||||
FORMULA(2, "公式", 84977);
|
||||
FORMULA(2, "公式", 84977),
|
||||
SQL(3, "SQL", 84977);
|
||||
|
||||
private int value;
|
||||
|
||||
|
|
@ -58,7 +59,7 @@ public enum SalaryValueTypeEnum implements BaseEnum<Integer> {
|
|||
return "";
|
||||
}
|
||||
SalaryValueTypeEnum[] enumAry = SalaryValueTypeEnum.values();
|
||||
for(int i = 0; i < Arrays.asList(enumAry).size(); i++){
|
||||
for (int i = 0; i < Arrays.asList(enumAry).size(); i++) {
|
||||
if (Integer.valueOf(enumAry[i].getValue()).equals(value)) {
|
||||
return enumAry[i].getDefaultLabel();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,7 +100,9 @@
|
|||
>
|
||||
INSERT INTO hrsa_formula_var
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
||||
<if test="id != null">
|
||||
id,
|
||||
</if>
|
||||
<if test="name != null">
|
||||
name,
|
||||
</if>
|
||||
|
|
@ -136,6 +138,9 @@
|
|||
</if>
|
||||
</trim>
|
||||
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">
|
||||
#{id},
|
||||
</if>
|
||||
<if test="name != null">
|
||||
#{name},
|
||||
</if>
|
||||
|
|
|
|||
|
|
@ -391,6 +391,7 @@
|
|||
WHERE
|
||||
delete_type = 0
|
||||
<include refid="paramSql"/>
|
||||
ORDER BY id DESC
|
||||
</select>
|
||||
|
||||
<sql id="paramSql">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
package com.engine.salary.service;
|
||||
|
||||
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
||||
import com.engine.salary.entity.salaryformula.param.SalaryFormulaSaveParam;
|
||||
import com.engine.salary.entity.salaryformula.po.FormulaPO;
|
||||
import com.engine.salary.entity.salarysql.ExpressSQL;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 薪酬管理SQL编辑器
|
||||
* <p>Copyright: Copyright (c) 2022</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @author qiantao
|
||||
* @version 1.0
|
||||
**/
|
||||
public interface SalarySQLService {
|
||||
|
||||
/**
|
||||
* 根据公式id获取公式内容
|
||||
*
|
||||
* @param formulaIds
|
||||
* @return
|
||||
*/
|
||||
List<ExpressSQL> listExpressFormula(Collection<Long> formulaIds);
|
||||
|
||||
/**
|
||||
* 根据公式id获取公式内容
|
||||
*
|
||||
* @param formulaId
|
||||
* @return
|
||||
*/
|
||||
ExpressFormula getExpressFormula(Long formulaId);
|
||||
|
||||
FormulaPO save(SalaryFormulaSaveParam salaryFormulaSaveParam);
|
||||
|
||||
FormulaPO update(SalaryFormulaSaveParam salaryFormulaSaveParam);
|
||||
|
||||
Object run(ExpressSQL expresssql);
|
||||
}
|
||||
|
|
@ -21,6 +21,7 @@ import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
|||
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
|
||||
import com.engine.salary.enums.SalaryFormulaReferenceEnum;
|
||||
import com.engine.salary.enums.SalaryValueTypeEnum;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
|
|
@ -158,6 +159,10 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
|
|||
for (Long salaryItemId : salaryItemIds) {
|
||||
String resultValue;
|
||||
SalaryItemPO salaryItemPO = salaryItemMap.get(salaryItemId);
|
||||
|
||||
SalaryValueTypeEnum salaryValueTypeEnum = SalaryValueTypeEnum.parseByValue(salaryItemPO.getValueType());
|
||||
|
||||
|
||||
ExpressFormula expressFormula;
|
||||
// 如果薪资账套下重新定义了薪资项目的公式,则使用薪资账套下的公式,否则使用薪资项目本身的公式
|
||||
if (salaryItemIdKeySalarySobItemPOMap.containsKey(salaryItemId)) {
|
||||
|
|
@ -166,7 +171,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
|
|||
} else {
|
||||
expressFormula = expressFormulaMap.get(salaryItemPO.getFormulaId());
|
||||
}
|
||||
if (Objects.nonNull(expressFormula)) {
|
||||
if (salaryValueTypeEnum == SalaryValueTypeEnum.FORMULA && Objects.nonNull(expressFormula)) {
|
||||
// 运行公式
|
||||
resultValue = runExpressFormula(expressFormula, formulaVarValueMap, simpleEmployee);
|
||||
} else {
|
||||
|
|
@ -208,7 +213,7 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
|
|||
.setSalaryItemId(salaryItemPO.getId())
|
||||
.setResultValue(resultValue)
|
||||
.setCalculateKey(salaryAcctCalculateBO.getCalculateKey())
|
||||
.setCreator(simpleEmployee.getEmployeeId())
|
||||
.setCreator((long) user.getUID())
|
||||
.setCreateTime(now)
|
||||
.setUpdateTime(now)
|
||||
.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
|
|
|
|||
|
|
@ -46,6 +46,9 @@ public class ResponseResult<T, R> {
|
|||
|
||||
private void permission() {
|
||||
if (isPermission && permission) {
|
||||
if (user == null) {
|
||||
throw new SalaryRunTimeException("获取登录人员信息失败");
|
||||
}
|
||||
List<Object> roleInfo = hrmCommonService.getRoleInfo(user.getUID());
|
||||
roleInfo.stream().map(m -> (Map) m).filter(m -> m.get("roleid") != null && m.get("roleid").toString().equals(salaryAdminRoleId)).findFirst().orElseThrow(() -> new SalaryRunTimeException("无权限"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ public class SalaryArchiveController {
|
|||
|
||||
XSSFWorkbook workbook = getSalaryArchiveWrapper(user).exportList(queryParam);
|
||||
|
||||
String fileName = "薪资档案";
|
||||
String fileName = "薪资档案" + LocalDate.now();
|
||||
try {
|
||||
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
|
|
@ -445,8 +445,7 @@ public class SalaryArchiveController {
|
|||
|
||||
XSSFWorkbook workbook = getSalaryArchiveItemWrapper(user).exportAdjustRecordList(param);
|
||||
|
||||
String time = LocalDate.now().toString();
|
||||
String fileName = "薪资项目调整记录" + time;
|
||||
String fileName = "薪资项目调整记录" + LocalDate.now();
|
||||
|
||||
try {
|
||||
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.engine.salary.wrapper;
|
|||
|
||||
import com.cloudstore.eccom.pc.table.WeaTable;
|
||||
import com.cloudstore.eccom.result.WeaResultMsg;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryComparisonResultListDTO;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryComparisonResultQueryParam;
|
||||
|
|
@ -9,6 +10,8 @@ import com.engine.salary.service.SalaryAcctRecordService;
|
|||
import com.engine.salary.service.SalaryComparisonResultService;
|
||||
import com.engine.salary.service.SalarySobEmpFieldService;
|
||||
import com.engine.salary.service.SalarySobItemService;
|
||||
import com.engine.salary.service.impl.SalaryComparisonResultServiceImpl;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
|
@ -24,7 +27,9 @@ import java.util.Map;
|
|||
public class SalaryComparisonResultWrapper extends Service {
|
||||
|
||||
|
||||
private SalaryComparisonResultService salaryComparisonResultService;
|
||||
private SalaryComparisonResultService getSalaryComparisonResultService(User user) {
|
||||
return (SalaryComparisonResultService) ServiceUtil.getService(SalaryComparisonResultServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctRecordService salaryAcctRecordService;
|
||||
|
||||
|
|
@ -40,7 +45,7 @@ public class SalaryComparisonResultWrapper extends Service {
|
|||
*/
|
||||
public Map<String, Object> listPage(SalaryComparisonResultQueryParam queryParam) {
|
||||
// 查询薪资核算线下对比列表
|
||||
SalaryComparisonResultListDTO salaryComparisonResultListDTO = salaryComparisonResultService.listPageByParam(queryParam);
|
||||
SalaryComparisonResultListDTO salaryComparisonResultListDTO = getSalaryComparisonResultService(user).listPageByParam(queryParam);
|
||||
|
||||
WeaTable table = new WeaTable();
|
||||
table.setColumns(salaryComparisonResultListDTO.getWeaTableColumns());
|
||||
|
|
|
|||
Loading…
Reference in New Issue