2022-04-14 20:46:17 +08:00
|
|
|
|
package com.engine.salary.web;
|
|
|
|
|
|
|
|
|
|
|
|
import com.engine.common.util.ServiceUtil;
|
|
|
|
|
|
import com.engine.salary.entity.salaryformula.dto.ExpressFormulaDTO;
|
|
|
|
|
|
import com.engine.salary.entity.salaryformula.param.SalaryFormulaFieldQueryParam;
|
2023-03-06 19:45:48 +08:00
|
|
|
|
import com.engine.salary.entity.salaryformula.param.SalaryFormulaMockParam;
|
2022-04-14 20:46:17 +08:00
|
|
|
|
import com.engine.salary.entity.salaryformula.param.SalaryFormulaSaveParam;
|
2022-04-16 16:49:22 +08:00
|
|
|
|
import com.engine.salary.entity.salaryformula.po.FormulaPO;
|
2022-04-14 20:46:17 +08:00
|
|
|
|
import com.engine.salary.entity.salaryformula.po.FormulaVar;
|
|
|
|
|
|
import com.engine.salary.util.ResponseResult;
|
|
|
|
|
|
import com.engine.salary.wrapper.SalaryFormulaWrapper;
|
|
|
|
|
|
import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
2022-12-07 15:47:35 +08:00
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
2022-04-14 20:46:17 +08:00
|
|
|
|
import weaver.hrm.HrmUserVarify;
|
|
|
|
|
|
import weaver.hrm.User;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
import javax.ws.rs.*;
|
|
|
|
|
|
import javax.ws.rs.core.Context;
|
|
|
|
|
|
import javax.ws.rs.core.MediaType;
|
2022-08-03 10:08:43 +08:00
|
|
|
|
import java.util.ArrayList;
|
2022-04-14 20:46:17 +08:00
|
|
|
|
import java.util.List;
|
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
2022-12-07 15:47:35 +08:00
|
|
|
|
@Slf4j
|
2022-04-14 20:46:17 +08:00
|
|
|
|
public class SalaryFormulaController {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private SalaryFormulaWrapper getSalaryFormulaWrapper(User user) {
|
|
|
|
|
|
return (SalaryFormulaWrapper) ServiceUtil.getService(SalaryFormulaWrapper.class, user);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//变量项
|
|
|
|
|
|
@POST
|
|
|
|
|
|
@Path("/search/group")
|
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
|
public String fieldGroupList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Map<String, Object> param) {
|
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
|
return new ResponseResult<Map<String, Object>, List<Map<String, Object>>>(user).run(getSalaryFormulaWrapper(user)::fieldGroupList, param);
|
2022-04-14 20:46:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//变量字段列表
|
|
|
|
|
|
@POST
|
|
|
|
|
|
@Path("/search/field")
|
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
|
public String fieldList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryFormulaFieldQueryParam param) {
|
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
|
return new ResponseResult<SalaryFormulaFieldQueryParam, List<FormulaVar>>(user).run(getSalaryFormulaWrapper(user)::fieldList, param);
|
2022-04-14 20:46:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//获取公式详情
|
|
|
|
|
|
@GET
|
|
|
|
|
|
@Path("/detail")
|
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
|
public String detail(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "formulaId") Long formulaId) {
|
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
|
return new ResponseResult<Long, ExpressFormulaDTO>(user).run(getSalaryFormulaWrapper(user)::detail, formulaId);
|
2022-04-14 20:46:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@POST
|
|
|
|
|
|
@Path("/save")
|
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
|
public String save(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryFormulaSaveParam param) {
|
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2022-04-25 18:06:09 +08:00
|
|
|
|
return new ResponseResult<SalaryFormulaSaveParam, FormulaPO>(user).run(getSalaryFormulaWrapper(user)::save, param);
|
2022-04-14 20:46:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2022-08-03 10:08:43 +08:00
|
|
|
|
//数据源列表
|
2022-08-03 10:47:26 +08:00
|
|
|
|
@GET
|
2022-08-03 10:08:43 +08:00
|
|
|
|
@Path("/datasource/list")
|
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
|
public String datasource(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
|
|
|
|
|
return new ResponseResult<String, ArrayList>(user).run(getSalaryFormulaWrapper(user)::datasourceList);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-12-13 16:13:45 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 测试公式
|
2023-04-25 18:04:05 +08:00
|
|
|
|
*
|
2022-12-13 16:13:45 +08:00
|
|
|
|
* @param request
|
|
|
|
|
|
* @param response
|
|
|
|
|
|
* @param param
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
2022-12-13 10:53:43 +08:00
|
|
|
|
@POST
|
2022-12-13 16:13:45 +08:00
|
|
|
|
@Path("/mock")
|
2022-12-07 15:47:35 +08:00
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
2023-03-06 19:45:48 +08:00
|
|
|
|
public String mock(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryFormulaMockParam param) {
|
2022-12-07 15:47:35 +08:00
|
|
|
|
User user = HrmUserVarify.getUser(request, response);
|
2023-03-06 19:45:48 +08:00
|
|
|
|
return new ResponseResult<SalaryFormulaMockParam, Object>(user).run(getSalaryFormulaWrapper(user)::mock, param);
|
2022-12-07 15:47:35 +08:00
|
|
|
|
}
|
2022-04-14 20:46:17 +08:00
|
|
|
|
|
2023-04-25 18:04:05 +08:00
|
|
|
|
|
|
|
|
|
|
@GET
|
|
|
|
|
|
@Path("/des")
|
|
|
|
|
|
@Produces(MediaType.APPLICATION_JSON)
|
|
|
|
|
|
public String mock(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
|
|
|
|
|
return "{\"data\":[{\"children\":[{\"name\":\"CONCAT\",\"chineseName\":\"链接多个文本\",\"description\":\"可用于连接多个任意类型的文本、日期、数字变量或常量。最后一个字符可使用'#分隔符#'标记为分隔符\",\"example\":\"CONCAT({总价}/10000, '万元')\",\"result\":\"100万元\",\"paramDescs\":[\"*文本1*(必选)\",\"*文本2*(可选)\",\"......\"],\"formatString\":\"CONCAT(文本1, 文本2, [文本3, …],[#分隔符#])\",\"paramArray\":[],\"paramData\":[],\"returnType\":\"string\",\"type\":\"function\",\"validForm\":\"current_data\",\"paramCount\":-1,\"paramStatuses\":[{\"dataType\":\"string\",\"must\":true,\"infinite\":true}]},{\"name\":\"TEXT\",\"chineseName\":\"将变量转为文本\",\"description\":\"将变量转为文本。\",\"example\":\"TEXT({当前数据.性别})\",\"result\":\"'男'\",\"paramDescs\":[\"*变量*(必选)\"],\"formatString\":\"TEXT(变量)\",\"paramArray\":[],\"paramData\":[],\"returnType\":\"string\",\"type\":\"function\",\"validForm\":\"current_data\",\"paramCount\":1,\"paramStatuses\":[{\"dataType\":\"all\",\"must\":true,\"infinite\":false}]},{\"name\":\"VALUE\",\"chineseName\":\"将文本转为数字\",\"description\":\"将文本转为数字。\",\"example\":\"VALUE('23')\",\"result\":\"23\",\"paramDescs\":[\"*文本、数字、选项*(必选)\"],\"formatString\":\"VALUE([文本、数字、选项])\",\"paramArray\":[],\"paramData\":[],\"returnType\":\"number\",\"type\":\"function\",\"validForm\":\"current_data\",\"paramCount\":1,\"paramStatuses\":[{\"dataType\":\"all\",\"must\":true,\"infinite\":false}]},{\"name\":\"LEN\",\"chineseName\":\"返回文本长度\",\"description\":\"返回文本的长度,中文、英文都算1个字符。\",\"example\":\"LEN('大家好dajiahao')\",\"result\":\"12\",\"paramDescs\":[\"*变量或常量*(必选)\"],\"formatString\":\"LEN(文本)\",\"paramArray\":[],\"paramData\":[],\"returnType\":\"number\",\"type\":\"function\",\"validForm\":\"current_data\",\"paramCount\":1,\"paramStatuses\":[{\"dataType\":\"string\",\"must\":true,\"infinite\":false}]},{\"name\":\"SEARCH\",\"chineseName\":\"在文本中查找关键字\",\"description\":\"在指定文本中查找关键字,返回第一次出现关键字的字符位置,文本的第一个字记为1。未找到,返回0。搜索开始位置,表示从文本的第几个字符开始搜索,默认为1。\",\"example\":\"SEARCH('大家', '大家好大家好', 3)\",\"result\":\"4\",\"paramDescs\":[\"*文本关键字*(必选)\",\"*文本*(必选)\",\"*搜索开始位置*(可选)\"],\"formatString\":\"SEARCH(关键字, 文本, [搜索开始位置])\",\"paramArray\":[],\"paramData\":[],\"returnType\":\"number\",\"type\":\"function\",\"validForm\":\"current_data\",\"paramCount\":3,\"paramStatuses\":[{\"dataType\":\"string\",\"must\":true,\"infinite\":false},{\"dataType\":\"string\",\"must\":true,\"infinite\":false},{\"dataType\":\"number\",\"must\":false,\"infinite\":false}]},{\"name\":\"REPLACE\",\"chineseName\":\"替换文本中的字\",\"description\":\"在原文本中,从替换位置开始,往后数指定的替换字符数,将这段文本替换为新文本。\",\"example\":\"REPLACE('大家好大家好', 2, 3, 'dajia')\",\"result\":\"'大dajia家好'\",\"paramDescs\":[\"*文本*(必选)\"],\"formatString\":\"REPLACE(原文本, 替换开始位置, 替换字符数, 新文本)\",\"paramArray\":[],\"paramData\":[],\"returnType\":\"string\",\"type\":\"function\",\"validForm\":\"current_data\",\"paramCount\":4,\"paramStatuses\":[{\"dataType\":\"string\",\"must\":true,\"infinite\":false},{\"dataType\":\"number\",\"must\":true,\"infinite\":false},{\"dataType\":\"number\",\"must\":true,\"infinite\":false},{\"dataType\":\"string\",\"must\":true,\"infinite\":false}]},{\"name\":\"REPT\",\"chineseName\":\"将文本重复指定次数\",\"description\":\"将文本重复指定次数。\",\"example\":\"REPT('大家', 2)\",\"result\":\"'大家大家'\",\"paramDescs\":[\"*文本*(必选)\",\"*重复次数*(必选)\"],\"formatStrin
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-04-14 20:46:17 +08:00
|
|
|
|
}
|