线下对比

This commit is contained in:
钱涛 2022-04-26 16:39:41 +08:00
parent d521bf5bf7
commit 151fa2b575
11 changed files with 267 additions and 10 deletions

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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>

View File

@ -391,6 +391,7 @@
WHERE
delete_type = 0
<include refid="paramSql"/>
ORDER BY id DESC
</select>
<sql id="paramSql">

View File

@ -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);
}

View File

@ -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)

View File

@ -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("无权限"));
}

View File

@ -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");

View File

@ -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());