Compare commits
13 Commits
Author | SHA1 | Date |
---|---|---|
|
ae78dba038 | 9 months ago |
|
731b047779 | 9 months ago |
|
245ecb99ad | 9 months ago |
|
c2f9a4dda6 | 9 months ago |
|
c764c45c76 | 1 year ago |
|
140e728865 | 1 year ago |
|
2cd96be4e7 | 1 year ago |
|
3597676b36 | 1 year ago |
|
1f7070c611 | 2 years ago |
|
884052dc1d | 2 years ago |
|
cf8841a775 | 2 years ago |
|
dee3855003 | 2 years ago |
|
bc855b294b | 2 years ago |
@ -0,0 +1,12 @@
|
||||
package com.api.htypoc.web;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/09/08
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/hty/poc")
|
||||
public class HtyController extends com.engine.hty.web.HtyController{
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.api.jclpoc.web;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/05/08
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Path("/jcl/poc/pocperformance")
|
||||
public class PocPerformanceController extends com.engine.jclpoc.web.PocPerformanceController{
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
package com.api.jygf.web;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description:
|
||||
* @Date 2022/10/9
|
||||
* @Version V1.0
|
||||
**/
|
||||
@Path("/mobile/permission")
|
||||
public class MobilePermissionsAction extends com.engine.jygf.web.MobilePermissionsAction {
|
||||
}
|
@ -0,0 +1,178 @@
|
||||
package com.engine.hty.web;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.weaver.general.Util;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/09/08
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class HtyController {
|
||||
|
||||
@GET
|
||||
@Path("/getTotalScore")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public Map<String, Object> getTotalScore(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
Map<String, Object> map = ParamUtil.request2Map(request);
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
returnMap.put("api_status", true);
|
||||
|
||||
String khzq = Util.null2String((String) map.get("khzq"));
|
||||
String xmkhry = Util.null2String((String) map.get("xmkhry"));
|
||||
String xmpfqz = Util.null2String((String) map.get("xmpfqz"));
|
||||
String gwzzpfqz = Util.null2String((String) map.get("gwzzpfqz"));
|
||||
String gwzzpf = Util.null2String((String) map.get("gwzzpf"));
|
||||
|
||||
String billId = Util.null2String((String) map.get("billId"));
|
||||
RecordSet rs = new RecordSet();
|
||||
List<Double> list = new ArrayList<>();
|
||||
// 考核周期。考核人员
|
||||
rs.executeQuery("select xmjldf from uf_xmkhpf where khzq = ? and xmkhry = ?", khzq, xmkhry);
|
||||
while (rs.next()) {
|
||||
list.add(Convert.toDouble(rs.getString("xmjldf"), 0D));
|
||||
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
Double total = 0D;
|
||||
for (Double i : list) {
|
||||
total += i;
|
||||
}
|
||||
BigDecimal totalDecimal = BigDecimal.valueOf(total);
|
||||
BigDecimal sizeDecimal = BigDecimal.valueOf(list.size());
|
||||
// 保留两位小数
|
||||
BigDecimal average = totalDecimal.divide(sizeDecimal, 2, RoundingMode.HALF_UP);
|
||||
returnMap.put("average", average);
|
||||
|
||||
//
|
||||
Double xmpfqzInt = Convert.toDouble(xmpfqz, 0D);
|
||||
if (xmpfqzInt == 0D) {
|
||||
returnMap.put("api_status", false);
|
||||
returnMap.put("msg", "项目评分权重转换失败");
|
||||
}
|
||||
Double gwzzpfqzInt = Convert.toDouble(gwzzpfqz, 0D);
|
||||
if (gwzzpfqzInt == 0D) {
|
||||
returnMap.put("api_status", false);
|
||||
returnMap.put("msg", "岗位职责评分权重转换失败");
|
||||
}
|
||||
Double gwzzpfInt = Convert.toDouble(gwzzpf, 0D);
|
||||
if (gwzzpfInt == 0D) {
|
||||
returnMap.put("api_status", false);
|
||||
returnMap.put("msg", "岗位职责评分转换失败");
|
||||
}
|
||||
BigDecimal xmpfqzBig = BigDecimal.valueOf(xmpfqzInt).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
|
||||
|
||||
BigDecimal gwzzpfqzBig = BigDecimal.valueOf(gwzzpfqzInt).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
|
||||
|
||||
BigDecimal result1 = average.multiply(xmpfqzBig).setScale(2, RoundingMode.HALF_UP);
|
||||
BigDecimal result2 = gwzzpfqzBig.multiply(BigDecimal.valueOf(gwzzpfInt)).setScale(2, RoundingMode.HALF_UP);
|
||||
|
||||
BigDecimal add = result1.add(result2);
|
||||
returnMap.put("result", add);
|
||||
|
||||
// 更新表中的数据
|
||||
rs.executeUpdate("update uf_xmzkh set khzdf = ? where id = ? ", add, billId);
|
||||
}
|
||||
|
||||
|
||||
return returnMap;
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/getData")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public Map<String, Object> getData(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
Map<String, Object> map = ParamUtil.request2Map(request);
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
returnMap.put("api_status", true);
|
||||
|
||||
String ffyf = Util.null2String((String) map.get("ffyf"));
|
||||
String ffry = Util.null2String((String) map.get("ffry"));
|
||||
String bm = Util.null2String((String) map.get("bm"));
|
||||
if (StringUtils.isBlank(bm)) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
String billId = Util.null2String((String) map.get("billId"));
|
||||
RecordSet rs = new RecordSet();
|
||||
|
||||
String year = ffyf.substring(0, 4);
|
||||
// 年月转化为季度
|
||||
String month = ffyf.substring(4, 6);
|
||||
// 月份转化为季度
|
||||
String quarter = "";
|
||||
if (month.equals("01") || month.equals("02") || month.equals("03")) {
|
||||
quarter = "0";
|
||||
} else if (month.equals("04") || month.equals("05") || month.equals("06")) {
|
||||
quarter = "1";
|
||||
} else if (month.equals("07") || month.equals("08") || month.equals("09")) {
|
||||
quarter = "2";
|
||||
} else if (month.equals("10") || month.equals("11") || month.equals("12")) {
|
||||
quarter = "3";
|
||||
}
|
||||
String sql = "select * from uf_htyjxhd where khnd =" + year + " and khjd =" + quarter + " and concat(',',khry,',') like '%," + ffry + ",%' order by id desc ";
|
||||
rs.executeQuery(sql);
|
||||
if (rs.next()) {
|
||||
String id = rs.getString("id");
|
||||
rs.executeQuery("select * from uf_jxdjfb_dt2 where jxhd = ? and khry = ?", id, ffry);
|
||||
if (rs.next()) {
|
||||
map.put("khzzdf", rs.getString("khzzdf"));
|
||||
map.put("khdj", rs.getString("khdj"));
|
||||
}
|
||||
}
|
||||
|
||||
rs.executeQuery("select * from uf_jcl_yjjx where yjyf = ?", ffyf);
|
||||
String jxyj = "";
|
||||
if (rs.next()) {
|
||||
jxyj = rs.getString("jxyj");
|
||||
}
|
||||
map.put("jxyj", jxyj);
|
||||
|
||||
String xs = "";
|
||||
rs.executeQuery("select a.jjxs,b.mrjjxs from uf_jcl_jjfpfa_dt1 a inner join uf_jcl_jjfpfa b on a.mainid = b.id where a.ry = ?", ffry);
|
||||
if (rs.next()) {
|
||||
xs = rs.getString("jjxs");
|
||||
if (StringUtils.isBlank(xs)) {
|
||||
xs = rs.getString("mrjjxs");
|
||||
}
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(xs)) {
|
||||
rs.executeQuery("select a.jjxs,b.mrjjxs from uf_jcl_jjfpfa_dt1 a inner join uf_jcl_jjfpfa b on a.mainid = b.id where a.bm =?", bm);
|
||||
if (rs.next()) {
|
||||
xs = rs.getString("jjxs");
|
||||
if (StringUtils.isBlank(xs)) {
|
||||
xs = rs.getString("mrjjxs");
|
||||
}
|
||||
}
|
||||
}
|
||||
map.put("xs", xs);
|
||||
if (StringUtils.isNotBlank(xs) && StringUtils.isNotBlank(jxyj)) {
|
||||
BigDecimal decimal = new BigDecimal(xs).multiply(new BigDecimal(jxyj)).setScale(2, RoundingMode.HALF_UP);
|
||||
map.put("bzjjje", decimal);
|
||||
}
|
||||
|
||||
|
||||
return returnMap;
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package com.engine.jclpoc.web;
|
||||
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.Util;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/05/08
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class PocPerformanceController {
|
||||
|
||||
@GET
|
||||
@Path("/getTotalScore")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public Map<String, Object> getTotalScore(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
Map<String, Object> map = ParamUtil.request2Map(request);
|
||||
Map<String, Object> returnMap = new HashMap<>();
|
||||
returnMap.put("api_status", true);
|
||||
String hdId = Util.null2String(map.get("hdId"));
|
||||
String bpr = Util.null2String(map.get("bpr"));
|
||||
RecordSet rs = new RecordSet();
|
||||
// 查询明细表已完成评价且得分不为空的数据
|
||||
rs.executeQuery("select * from uf_360pjhd_dt2 where mainid = ? and bpr = ? and sfpjwc = 1 and df is not null", hdId, bpr);
|
||||
int count = 0;
|
||||
double sum = 0;
|
||||
while (rs.next()) {
|
||||
count++;
|
||||
sum += rs.getDouble("df");
|
||||
}
|
||||
if (count > 0 && sum > 0) {
|
||||
// 计算并保留两位小数
|
||||
BigDecimal dividend = new BigDecimal(sum);
|
||||
BigDecimal divisor = new BigDecimal(count);
|
||||
BigDecimal result = dividend.divide(divisor, 2, RoundingMode.HALF_UP);
|
||||
returnMap.put("totalScore", result);
|
||||
} else {
|
||||
returnMap.put("totalScore", 0);
|
||||
}
|
||||
|
||||
return returnMap;
|
||||
}
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
package com.engine.jygf.cmd;
|
||||
|
||||
import com.engine.common.biz.AbstractCommonCommand;
|
||||
import com.engine.common.entity.BizLogContext;
|
||||
import com.engine.core.interceptor.CommandContext;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.hrm.User;
|
||||
import weaver.wechat.util.Utils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description:
|
||||
* @Date 2022/10/9
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class MobilePermissionsCmd extends AbstractCommonCommand<Map<String, Object>> {
|
||||
|
||||
private static final String FIELDID = "field100026"; //移动电话自定义字段
|
||||
|
||||
private static final String SCOPE = "HrmCustomFieldByInfoType";
|
||||
|
||||
private static final String SCOPEID = "-1";
|
||||
|
||||
public MobilePermissionsCmd(Map<String, Object> params, User user) {
|
||||
this.user = user;
|
||||
this.params = params;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizLogContext getLogContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> execute(CommandContext commandContext) {
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
String uid = Utils.null2String(user.getUID());
|
||||
RecordSet rs = new RecordSet();
|
||||
HashSet<String> ids = new HashSet<>();
|
||||
ids.add(uid);
|
||||
rs.executeQuery("select ckr,bckr from uf_yddhqx_dt1");
|
||||
while (rs.next()) {
|
||||
String ckr = Utils.null2String(rs.getString("ckr"));
|
||||
String bckr = Utils.null2String(rs.getString("bckr"));
|
||||
if (Arrays.asList(ckr.split(",")).contains(uid)) {
|
||||
ids.addAll(Arrays.asList(bckr.split(",")));
|
||||
}
|
||||
}
|
||||
|
||||
Map<String,String> mobileInfo = new HashMap<>();
|
||||
String value = StringUtils.join(ids,",");
|
||||
rs.executeQuery("select id,"+FIELDID+" from cus_fielddata where scope = ? and scopeid = ?" +
|
||||
" and id in ("+value+")",SCOPE,SCOPEID);
|
||||
while (rs.next()){
|
||||
mobileInfo.put(Utils.null2String(rs.getString("id")),rs.getString(FIELDID));
|
||||
}
|
||||
|
||||
data.put("ids",ids);
|
||||
data.put("mobileInfo",mobileInfo);
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
package com.engine.jygf.service;
|
||||
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description:
|
||||
* @Date 2022/10/9
|
||||
* @Version V1.0
|
||||
**/
|
||||
public interface MobilePermissionsService {
|
||||
|
||||
Map<String, Object> getPermissionInfo(Map<String, Object> params, User user);
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
package com.engine.jygf.service.impl;
|
||||
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.jygf.cmd.MobilePermissionsCmd;
|
||||
import com.engine.jygf.service.MobilePermissionsService;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description:
|
||||
* @Date 2022/10/9
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class MobilePermissionsServiceImpl extends Service implements MobilePermissionsService {
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getPermissionInfo(Map<String, Object> params, User user) {
|
||||
return commandExecutor.execute(new MobilePermissionsCmd(params,user));
|
||||
}
|
||||
}
|
@ -1,57 +0,0 @@
|
||||
package com.engine.jygf.web;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.engine.common.util.ParamUtil;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.jygf.service.MobilePermissionsService;
|
||||
import com.engine.jygf.service.impl.MobilePermissionsServiceImpl;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author weaver_cl
|
||||
* @Description:
|
||||
* @Date 2022/10/9
|
||||
* @Version V1.0
|
||||
**/
|
||||
public class MobilePermissionsAction {
|
||||
|
||||
public MobilePermissionsService getMobilePermissionsService(User user) {
|
||||
return ServiceUtil.getService(MobilePermissionsServiceImpl.class,user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 晶优光伏 移动电话通过建模控制权限 通讯录显示
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@GET
|
||||
@Path("/controller")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getPermissionInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
Map<String, Object> apidatas = new HashMap<>();
|
||||
try {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
//实例化Service 并调用业务类处理
|
||||
apidatas = getMobilePermissionsService(user).getPermissionInfo(ParamUtil.request2Map(request), user);
|
||||
} catch (Exception e) {
|
||||
//异常处理
|
||||
apidatas.put("api_status", false);
|
||||
}
|
||||
return JSONObject.toJSONString(apidatas);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package weaver.formmode.hty.modeexpand.activity;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.workflow.webservices.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/09/06
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class FlowUtil {
|
||||
|
||||
public static String parseBlankToNull(String str) {
|
||||
return StringUtils.isBlank(str) ? null : str;
|
||||
}
|
||||
|
||||
public static List<Map<String, String>> getRecordMapList(RecordSet rs) {
|
||||
List<Map<String, String>> list = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
String[] columnNames = rs.getColumnName();
|
||||
Map<String, String> dataMap = new HashMap<>();
|
||||
for (String columnName : columnNames) {
|
||||
dataMap.put(columnName.toLowerCase(), parseBlankToNull(rs.getString(columnName)));
|
||||
}
|
||||
list.add(dataMap);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static WorkflowRequestTableField createWorkflowRequestTableField(String fieldName, String fieldValue) {
|
||||
WorkflowRequestTableField tableField = new WorkflowRequestTableField();
|
||||
tableField.setFieldName(fieldName);
|
||||
tableField.setFieldValue(fieldValue);
|
||||
tableField.setView(true);
|
||||
tableField.setEdit(true);
|
||||
return tableField;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建流程
|
||||
*
|
||||
* @param flowId
|
||||
* @param title
|
||||
* @param creatorId
|
||||
* @param isNextFlow
|
||||
* @param workflowMainTableInfo
|
||||
* @param workflowDetailTableInfoArray
|
||||
* @return
|
||||
*/
|
||||
public static String createWorkflow(String flowId, String title, String creatorId, String isNextFlow, WorkflowMainTableInfo workflowMainTableInfo, WorkflowDetailTableInfo[] workflowDetailTableInfoArray) {
|
||||
WorkflowBaseInfo workflowBaseInfo = new WorkflowBaseInfo();
|
||||
workflowBaseInfo.setWorkflowId(flowId);
|
||||
//工作流程请求信息
|
||||
WorkflowRequestInfo workflowRequestInfo = new WorkflowRequestInfo();
|
||||
//请求标题
|
||||
workflowRequestInfo.setRequestName(title);
|
||||
//请求重要级别
|
||||
workflowRequestInfo.setRequestLevel("1");
|
||||
//显示
|
||||
workflowRequestInfo.setCanView(true);
|
||||
//创建者id
|
||||
workflowRequestInfo.setCreatorId(creatorId);
|
||||
//工作流信息
|
||||
workflowRequestInfo.setWorkflowBaseInfo(workflowBaseInfo);
|
||||
//主表
|
||||
workflowRequestInfo.setWorkflowMainTableInfo(workflowMainTableInfo);
|
||||
workflowRequestInfo.setWorkflowDetailTableInfos(workflowDetailTableInfoArray);
|
||||
//是否提交下一节点
|
||||
workflowRequestInfo.setIsnextflow(isNextFlow);
|
||||
|
||||
WorkflowService workflow = new WorkflowServiceImpl();
|
||||
return workflow.doCreateWorkflowRequest(workflowRequestInfo, Convert.toInt(creatorId, 1));
|
||||
}
|
||||
}
|
@ -0,0 +1,215 @@
|
||||
package weaver.formmode.hty.modeexpand.performance;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
|
||||
import weaver.soa.workflow.request.*;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/09/07
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class RegistrationDistributionExpand extends AbstractModeExpandJavaCodeNew {
|
||||
@Override
|
||||
public Map<String, String> doModeExpand(Map<String, Object> param) {
|
||||
Map<String, String> resultMap = new HashMap<>(2);
|
||||
RecordSet rs = new RecordSet();
|
||||
try {
|
||||
int billId;
|
||||
int modeId;
|
||||
RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo");
|
||||
if (requestInfo != null) {
|
||||
{
|
||||
|
||||
DetailTableInfo detailTableInfo = requestInfo.getDetailTableInfo();
|
||||
DetailTable detailTable0 = detailTableInfo.getDetailTable(0);
|
||||
|
||||
List<Rule> ruleList = new ArrayList<>();
|
||||
Row[] rows0 = detailTable0.getRow();
|
||||
for (Row row : rows0) {
|
||||
Rule rule = new Rule();
|
||||
Cell[] cells = row.getCell();
|
||||
for (Cell cell : cells) {
|
||||
String name = cell.getName();
|
||||
String value = cell.getValue();
|
||||
if ("jxdj".equals(name)) {
|
||||
rule.setRuleName(value);
|
||||
} else if ("fbbl".equals(name)) {
|
||||
rule.setRuleRange(Double.parseDouble(value));
|
||||
}
|
||||
|
||||
}
|
||||
ruleList.add(rule);
|
||||
}
|
||||
|
||||
ruleList.forEach(item -> rs.writeLog(JSON.toJSONString(item)));
|
||||
|
||||
|
||||
DetailTable detailTable1 = detailTableInfo.getDetailTable(1);
|
||||
Row[] rows1 = detailTable1.getRow();
|
||||
List<Result> resultList = new ArrayList<>();
|
||||
for (Row row : rows1) {
|
||||
Cell[] cells = row.getCell();
|
||||
Result result = new Result();
|
||||
result.setId(row.getId());
|
||||
for (Cell cell : cells) {
|
||||
String name = cell.getName();
|
||||
String value = cell.getValue();
|
||||
if ("khzzdf".equals(name)) {
|
||||
result.setScore(Convert.toDouble(value, 0D));
|
||||
}
|
||||
}
|
||||
resultList.add(result);
|
||||
}
|
||||
|
||||
// 所有人员排名
|
||||
LinkedHashSet<Integer> rankSet = calculateRankings(resultList);
|
||||
rs.writeLog("排名");
|
||||
resultList.forEach(item -> rs.writeLog(JSON.toJSONString(item)));
|
||||
|
||||
ArrayList<Integer> rankList = new ArrayList<>(rankSet);
|
||||
// 根据排名,按照分部比例划分
|
||||
int subStart = 0;
|
||||
double currentRange = 0.0;
|
||||
for (int i = 0; i < ruleList.size(); i++) {
|
||||
Rule rule = ruleList.get(i);
|
||||
double ruleRange = rule.getRuleRange() / 100;
|
||||
currentRange += ruleRange;
|
||||
rs.writeLog("ruleRange==" + ruleRange);
|
||||
rs.writeLog("currentRange==" + currentRange);
|
||||
//int subEnd = subStart!=0?(int) Math.floor(rankList.size() * ruleRange):(int) Math.ceil(rankList.size() * ruleRange);
|
||||
// 向下取
|
||||
int subEnd = (int) Math.floor(rankList.size() * currentRange);
|
||||
if (i == 0 && subEnd < 1) {
|
||||
subEnd = 1;
|
||||
}
|
||||
if (i == ruleList.size() && subEnd < ruleList.size()) {
|
||||
subEnd = rankList.size();
|
||||
}
|
||||
List<Integer> rangeList = rankList.subList(subStart, subEnd);
|
||||
for (Integer integer : rangeList) {
|
||||
for (Result result : resultList) {
|
||||
if (result.getRank().equals(integer)) {
|
||||
result.setLevel(rule.getRuleName());
|
||||
}
|
||||
}
|
||||
}
|
||||
subStart = subEnd;
|
||||
}
|
||||
|
||||
rs.writeLog("划分等级");
|
||||
|
||||
// 更新明细表
|
||||
String updateSql = "update uf_jxdjfb_dt2 set khdj = ? where id = ?";
|
||||
for (Result result : resultList) {
|
||||
rs.writeLog(JSON.toJSONString(result));
|
||||
rs.executeUpdate(updateSql, result.getLevel(), result.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
rs.writeLog(e);
|
||||
resultMap.put("errmsg", e.getMessage());
|
||||
resultMap.put("flag", "false");
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
public static LinkedHashSet<Integer> calculateRankings(List<Result> resultList) {
|
||||
LinkedHashSet<Integer> rankSet = new LinkedHashSet<>();
|
||||
|
||||
|
||||
resultList.sort((o1, o2) -> {
|
||||
return o2.getScore().compareTo(o1.getScore()); // 按值(分数)降序排序
|
||||
});
|
||||
|
||||
// 计算排名并输出
|
||||
int rank = 1;
|
||||
double prevScore = -1;
|
||||
for (Result result : resultList) {
|
||||
double score = result.getScore();
|
||||
if (score < prevScore) {
|
||||
rank++;
|
||||
}
|
||||
prevScore = score;
|
||||
result.setRank(rank);
|
||||
rankSet.add(rank);
|
||||
|
||||
}
|
||||
|
||||
return rankSet;
|
||||
}
|
||||
|
||||
static class Rule {
|
||||
String ruleName;
|
||||
double ruleRange;
|
||||
|
||||
public Rule() {
|
||||
|
||||
}
|
||||
|
||||
public Rule(String ruleName, double ruleRange) {
|
||||
this.ruleName = ruleName;
|
||||
this.ruleRange = ruleRange;
|
||||
}
|
||||
|
||||
public String getRuleName() {
|
||||
return ruleName;
|
||||
}
|
||||
|
||||
public void setRuleName(String ruleName) {
|
||||
this.ruleName = ruleName;
|
||||
}
|
||||
|
||||
public double getRuleRange() {
|
||||
return ruleRange;
|
||||
}
|
||||
|
||||
public void setRuleRange(double ruleRange) {
|
||||
this.ruleRange = ruleRange;
|
||||
}
|
||||
}
|
||||
|
||||
static class Result {
|
||||
String id;
|
||||
Double score;
|
||||
String level;
|
||||
Integer rank;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Double getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
public void setScore(Double score) {
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public String getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public void setLevel(String level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public Integer getRank() {
|
||||
return rank;
|
||||
}
|
||||
|
||||
public void setRank(Integer rank) {
|
||||
this.rank = rank;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
package weaver.formmode.poc.modeexpand.evaluate;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
import weaver.soa.workflow.request.MainTableInfo;
|
||||
import weaver.soa.workflow.request.Property;
|
||||
import weaver.soa.workflow.request.RequestInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 评价人员定义 添加评价人员
|
||||
*
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/05/07
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class AddEvaluationMemberExpand extends AbstractModeExpandJavaCodeNew {
|
||||
@Override
|
||||
public Map<String, String> doModeExpand(Map<String, Object> param) {
|
||||
Map<String, String> result = new HashMap<>(2);
|
||||
RecordSet rs = new RecordSet();
|
||||
try {
|
||||
int billId;
|
||||
int modeId;
|
||||
RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo");
|
||||
if (requestInfo != null) {
|
||||
billId = Util.getIntValue(requestInfo.getRequestid());
|
||||
modeId = Util.getIntValue(requestInfo.getWorkflowid());
|
||||
if (billId > 0 && modeId > 0) {
|
||||
Map<String, String> mainDataMap = new HashMap<>(3);
|
||||
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
|
||||
Property[] properties = mainTableInfo.getProperty();
|
||||
for (Property property : properties) {
|
||||
mainDataMap.put(property.getName(), property.getValue());
|
||||
}
|
||||
|
||||
String bpr = mainDataMap.get("bpr");
|
||||
if (StringUtils.isNotBlank(bpr)) {
|
||||
ResourceComInfo resourceComInfo = new ResourceComInfo();
|
||||
String[] bprSplit = bpr.split(",");
|
||||
for (String s : bprSplit) {
|
||||
String departmentId = resourceComInfo.getDepartmentID(s);
|
||||
// 查询同部门下的所有评价人
|
||||
rs.executeQuery("select id from hrmresource where departmentid = ? and id != ?", departmentId, s);
|
||||
while (rs.next()) {
|
||||
Map<String, Object> insertMap = new HashMap<>(4);
|
||||
// 主表ID
|
||||
insertMap.put("mainid", billId);
|
||||
// 评价人
|
||||
insertMap.put("pjr", rs.getString("id"));
|
||||
// 被评人
|
||||
insertMap.put("bpr", s);
|
||||
// 未评价
|
||||
insertMap.put("sfpjwc", "0");
|
||||
// 插入数据
|
||||
insertData(insertMap, "uf_360pjhd_dt2");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
rs.writeLog(e);
|
||||
result.put("errmsg", "添加评价人员拓展异常");
|
||||
result.put("flag", "false");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void insertData(Map<String, Object> dataMap, String tableName) {
|
||||
List<String> fieldList = new ArrayList<>();
|
||||
List<Object> dataList = new ArrayList<>();
|
||||
List<String> paramList = new ArrayList<>();
|
||||
|
||||
dataMap.forEach((key, value) -> {
|
||||
if (null != value) {
|
||||
fieldList.add(key);
|
||||
dataList.add(value);
|
||||
paramList.add("?");
|
||||
}
|
||||
});
|
||||
String insertSql = " insert into " + tableName + "(" + StringUtils.join(fieldList, ",") + ") values (" + StringUtils.join(paramList, ",") + ")";
|
||||
RecordSet rs = new RecordSet();
|
||||
rs.executeUpdate(insertSql, dataList);
|
||||
if (StringUtils.isNotBlank(rs.getExceptionMsg())) {
|
||||
throw new RuntimeException(rs.getExceptionMsg());
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,233 @@
|
||||
package weaver.interfaces.poc.action;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.interfaces.workflow.action.Action;
|
||||
import weaver.soa.workflow.request.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/05/08
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class PerformanceDistributionAction implements Action {
|
||||
@Override
|
||||
public String execute(RequestInfo requestInfo) {
|
||||
BaseBean baseBean = new BaseBean();
|
||||
try {
|
||||
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
|
||||
|
||||
DetailTableInfo detailTableInfo = requestInfo.getDetailTableInfo();
|
||||
DetailTable detailTable0 = detailTableInfo.getDetailTable(0);
|
||||
|
||||
List<Rule> ruleList = new ArrayList<>();
|
||||
Row[] rows0 = detailTable0.getRow();
|
||||
for (Row row : rows0) {
|
||||
Rule rule = new Rule();
|
||||
Cell[] cells = row.getCell();
|
||||
for (Cell cell : cells) {
|
||||
String name = cell.getName();
|
||||
String value = cell.getValue();
|
||||
if ("jxdj".equals(name)) {
|
||||
rule.setRuleName(value);
|
||||
} else if ("fbbl".equals(name)) {
|
||||
rule.setRuleRange(Double.parseDouble(value));
|
||||
}
|
||||
|
||||
}
|
||||
ruleList.add(rule);
|
||||
}
|
||||
|
||||
ruleList.forEach(item -> baseBean.writeLog(JSON.toJSONString(item)));
|
||||
|
||||
|
||||
DetailTable detailTable1 = detailTableInfo.getDetailTable(1);
|
||||
String tableDBName = detailTable1.getTableDBName();
|
||||
Row[] rows1 = detailTable1.getRow();
|
||||
List<Result> resultList = new ArrayList<>();
|
||||
for (Row row : rows1) {
|
||||
Cell[] cells = row.getCell();
|
||||
Result result = new Result();
|
||||
result.setId(row.getId());
|
||||
for (Cell cell : cells) {
|
||||
String name = cell.getName();
|
||||
String value = cell.getValue();
|
||||
if ("khzzdf".equals(name)) {
|
||||
result.setScore(StringUtils.isBlank(value) ? "0" : value);
|
||||
}
|
||||
}
|
||||
resultList.add(result);
|
||||
}
|
||||
|
||||
// 所有人员排名
|
||||
LinkedHashSet<Integer> rankSet = calculateRankings(resultList);
|
||||
baseBean.writeLog("排名");
|
||||
resultList.forEach(item -> baseBean.writeLog(JSON.toJSONString(item)));
|
||||
|
||||
ArrayList<Integer> rankList = new ArrayList<>(rankSet);
|
||||
// 根据排名,按照分部比例划分
|
||||
int subStart = 0;
|
||||
for (int i = 0; i < ruleList.size(); i++) {
|
||||
Rule rule = ruleList.get(i);
|
||||
double ruleRange = rule.getRuleRange();
|
||||
//int subEnd = subStart!=0?(int) Math.floor(rankList.size() * ruleRange):(int) Math.ceil(rankList.size() * ruleRange);
|
||||
// 向下取
|
||||
int subEnd = (int) Math.floor(rankList.size() * ruleRange);
|
||||
if (i == 0 && subEnd < 1) {
|
||||
subEnd = 1;
|
||||
}
|
||||
if (i == ruleList.size() && subEnd < ruleList.size()) {
|
||||
subEnd = rankList.size();
|
||||
}
|
||||
List<Integer> rangeList = rankList.subList(subStart, subEnd);
|
||||
for (Integer integer : rangeList) {
|
||||
for (Result result : resultList) {
|
||||
if (result.getRank().equals(integer)) {
|
||||
result.setLevel(rule.getRuleName());
|
||||
}
|
||||
}
|
||||
}
|
||||
subStart = subEnd;
|
||||
}
|
||||
|
||||
baseBean.writeLog("划分等级");
|
||||
|
||||
// 更新明细表
|
||||
RecordSet rs = new RecordSet();
|
||||
String updateSql = "update " + tableDBName + " set khdj = ? where id = ?";
|
||||
for (Result result : resultList) {
|
||||
baseBean.writeLog(JSON.toJSONString(result));
|
||||
rs.executeUpdate(updateSql, result.getLevel(), result.getId());
|
||||
}
|
||||
|
||||
|
||||
return SUCCESS;
|
||||
} catch (Exception e) {
|
||||
baseBean.writeLog(e);
|
||||
return FAILURE_AND_CONTINUE;
|
||||
}
|
||||
}
|
||||
|
||||
public static LinkedHashSet<Integer> calculateRankings(List<Result> resultList) {
|
||||
LinkedHashSet<Integer> rankSet = new LinkedHashSet<>();
|
||||
|
||||
|
||||
Collections.sort(resultList, (o1, o2) -> {
|
||||
return o2.getScore().compareTo(o1.getScore()); // 按值(分数)降序排序
|
||||
});
|
||||
|
||||
// 计算排名并输出
|
||||
int rank = 1;
|
||||
double prevScore = -1;
|
||||
for (Result result : resultList) {
|
||||
double score = Double.parseDouble(result.getScore());
|
||||
if (score < prevScore) {
|
||||
rank++;
|
||||
}
|
||||
prevScore = score;
|
||||
result.setRank(rank);
|
||||
rankSet.add(rank);
|
||||
|
||||
}
|
||||
|
||||
return rankSet;
|
||||
}
|
||||
|
||||
//public static LinkedHashSet<Integer> calculateRankings(List<Result> resultList) {
|
||||
// LinkedHashSet<Integer> rankSet = new LinkedHashSet<>();
|
||||
// int rank = 1;
|
||||
// double prevScore = Integer.MAX_VALUE;
|
||||
// double sameScoreCount = 0;
|
||||
//
|
||||
// for (Result result : resultList) {
|
||||
// double score = Double.parseDouble(result.getScore());
|
||||
// if (score < prevScore) {
|
||||
// rank += sameScoreCount;
|
||||
// sameScoreCount = 1;
|
||||
// } else {
|
||||
// sameScoreCount++;
|
||||
// }
|
||||
// result.setRank(rank);
|
||||
// rankSet.add(rank);
|
||||
// prevScore = score;
|
||||
// }
|
||||
//
|
||||
// return rankSet;
|
||||
//}
|
||||
|
||||
static class Rule {
|
||||
String ruleName;
|
||||
double ruleRange;
|
||||
|
||||
public Rule() {
|
||||
|
||||
}
|
||||
|
||||
public Rule(String ruleName, double ruleRange) {
|
||||
this.ruleName = ruleName;
|
||||
this.ruleRange = ruleRange;
|
||||
}
|
||||
|
||||
public String getRuleName() {
|
||||
return ruleName;
|
||||
}
|
||||
|
||||
public void setRuleName(String ruleName) {
|
||||
this.ruleName = ruleName;
|
||||
}
|
||||
|
||||
public double getRuleRange() {
|
||||
return ruleRange;
|
||||
}
|
||||
|
||||
public void setRuleRange(double ruleRange) {
|
||||
this.ruleRange = ruleRange;
|
||||
}
|
||||
}
|
||||
|
||||
static class Result {
|
||||
String id;
|
||||
String score;
|
||||
String level;
|
||||
Integer rank;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
public void setScore(String score) {
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public String getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public void setLevel(String level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public Integer getRank() {
|
||||
return rank;
|
||||
}
|
||||
|
||||
public void setRank(Integer rank) {
|
||||
this.rank = rank;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package weaver.interfaces.poc.action;
|
||||
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.interfaces.workflow.action.Action;
|
||||
import weaver.soa.workflow.request.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/05/10
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class UpdatePerformanceLevelsAction implements Action {
|
||||
@Override
|
||||
public String execute(RequestInfo requestInfo) {
|
||||
BaseBean baseBean = new BaseBean();
|
||||
try {
|
||||
Map<String, String> mainDataMap = new HashMap<>();
|
||||
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
|
||||
Property[] properties = mainTableInfo.getProperty();
|
||||
for (Property property : properties) {
|
||||
mainDataMap.put(property.getName(), property.getValue());
|
||||
}
|
||||
// 绩效活动
|
||||
String jxhd = mainDataMap.get("jxhd");
|
||||
|
||||
DetailTableInfo detailTableInfo = requestInfo.getDetailTableInfo();
|
||||
// 明细表二
|
||||
DetailTable detailTable1 = detailTableInfo.getDetailTable(1);
|
||||
String updateSql = "update uf_khfa set khdj = ? where requestId is null and jxhd = ? and khzzdf = ? and xm = ?";
|
||||
RecordSet rs = new RecordSet();
|
||||
Row[] rows = detailTable1.getRow();
|
||||
for (Row row : rows) {
|
||||
Map<String, String> detailMap = new HashMap<>();
|
||||
Cell[] cells = row.getCell();
|
||||
for (Cell cell : cells) {
|
||||
detailMap.put(cell.getName(), cell.getValue());
|
||||
}
|
||||
String khzzdf = detailMap.get("khzzdf");
|
||||
String xm = detailMap.get("ryxm");
|
||||
String khdj = detailMap.get("khdj");
|
||||
baseBean.writeLog("khdj==" + khdj);
|
||||
baseBean.writeLog("jxhd==" + jxhd);
|
||||
baseBean.writeLog("khzzdf==" + khzzdf);
|
||||
baseBean.writeLog("xm==" + xm);
|
||||
// 更新考核方案表登记
|
||||
rs.executeUpdate(updateSql, khdj, jxhd, khzzdf, xm);
|
||||
}
|
||||
return SUCCESS;
|
||||
} catch (Exception e) {
|
||||
baseBean.writeLog(e);
|
||||
return FAILURE_AND_CONTINUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue