Merge remote-tracking branch 'origin/main'

zm_dev
sy 9 months ago
commit 021d2afe3e

File diff suppressed because one or more lines are too long

@ -0,0 +1,70 @@
package com.engine.jucailinkq.attendance.attendanceanalysis.cmd;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.jucailinkq.common.cmd.GetPersonBySuitOrganzationCmd;
import com.engine.jucailinkq.common.util.DateUtil;
import com.engine.jucailinkq.common.util.DbTools;
import com.engine.jucailinkq.common.util.Utils;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import weaver.general.Util;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
public class GetAttendanceCycleCmd extends AbstractCommonCommand<Map<String,Object>> {
public GetAttendanceCycleCmd(Map<String,Object> params){
this.params=params;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
List<Map<String,Object>> userList = (List<Map<String,Object>>)params.get("userList");
String executeDate = Util.null2String(params.get("executeDate"));
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqzqmc");
params.put("modeId",modeId);
Map<String,List<String>> userToDateMap = Maps.newHashMap();
Map<String,Object> person = new GetPersonBySuitOrganzationCmd(params).execute(commandContext);
Set<String> attendanceCycleSet = Sets.newHashSet();
Set<String> subcompanyids = userList.stream().map(e->e.get("subcompanyid1").toString()).collect(Collectors.toSet());
Map<String,String> subcompanyToAttendanceCycleMap = Maps.newHashMap();
for (String subcompanyid :subcompanyids){
String attendanceCycle = Utils.getDefaultAttendanceCycle(subcompanyid);
subcompanyToAttendanceCycleMap.put(subcompanyid,attendanceCycle);
}
for (Map<String,Object> userMap : userList){
String id = Util.null2String(userMap.get("id"));
String subcompanyid1 =Util.null2String(userMap.get("subcompanyid1"));
String attendanceCycle = person.get(id)==null?subcompanyToAttendanceCycleMap.get(subcompanyid1):person.get(id).toString();
if ("".equals(attendanceCycle)){
continue;
}
attendanceCycleSet.add(attendanceCycle);
}
String sql = "select mc,ksrq,jsrq from uf_jcl_kq_kqzq where mc in ("+String.join(",",attendanceCycleSet)+") and gzrq<=? and zt <> '2'";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,executeDate,executeDate);
Map<String,List<Map<String,Object>>> dataCollect = dataList.stream().collect(Collectors.groupingBy(e->e.get("mc").toString()));
for (Map<String,Object> userMap : userList){
List<String> dateList = Lists.newArrayList();
dateList.add(DateUtil.beforeDay(executeDate,1));
dateList.add(DateUtil.beforeDay(executeDate,2));
String id = Util.null2String(userMap.get("id"));
userToDateMap.put(id,dateList);
}
return null;
}
}

@ -34,7 +34,7 @@ public class AttendanceAnalysisJob extends BaseCronJob {
public void execute() { public void execute() {
log.debug("********AttendanceAnalysisJob start********"); log.debug("********AttendanceAnalysisJob start********");
String queryUserSql = "select id from hrmresource where status <> '5' and status <> '4' and status <> '7'"; String queryUserSql = "select id,departmentid,subcompanyid1 from hrmresource where status <> '5' and status <> '4' and status <> '7'";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql); List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
String beforeFourDayDate = DateUtil.getCurrentDateMinusDay(4); String beforeFourDayDate = DateUtil.getCurrentDateMinusDay(4);

@ -1,7 +1,6 @@
package com.engine.jucailinkq.attendance.attendanceanalysis.service.impl; package com.engine.jucailinkq.attendance.attendanceanalysis.service.impl;
import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.*; import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.*;
import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.getclockInpoint.AdjustByWorkOverTimeCmd;
import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.getclockInpoint.biz.AbstractAdjustClockPointAction; import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.getclockInpoint.biz.AbstractAdjustClockPointAction;
import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.getclockInpoint.GetClockInPointCmd; import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.getclockInpoint.GetClockInPointCmd;
import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO; import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO;

@ -46,11 +46,11 @@ public class AttendanceanalysisAction {
@Produces({"text/plain"}) @Produces({"text/plain"})
public String getSchedulingData(@Context HttpServletRequest request, @Context HttpServletResponse response) { public String getSchedulingData(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try { try {
//Map<String,Object> paramMap = ParamUtil.request2Map(request); Map<String,Object> paramMap = ParamUtil.request2Map(request);
Map<String,Object> paramMap = Maps.newHashMap(); // Map<String,Object> paramMap = Maps.newHashMap();
paramMap.put("startDate","2024-07-18"); // paramMap.put("startDate","2024-07-18");
paramMap.put("endDate","2024-07-18"); // paramMap.put("endDate","2024-07-18");
paramMap.put("userIds","81"); // paramMap.put("userIds","81");
String startDate = Util.null2String(paramMap.get("startDate")); String startDate = Util.null2String(paramMap.get("startDate"));
String startBeforeDate = DateUtil.beforeDay(startDate,2); String startBeforeDate = DateUtil.beforeDay(startDate,2);

@ -486,7 +486,7 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
String sql = "select a.list_type,b.mainid,b.empid,b.filters,b.bdate,b.edate,b.sqltj from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?"; String sql = "select a.list_type,b.mainid,b.empid,b.filters,b.bdate,b.edate,b.sqltj from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.userfor=5 and a.fzgly=?";
List<Map<String,Object>> personnelGrouping = DbTools.getSqlToList(sql,userId); List<Map<String,Object>> personnelGrouping = DbTools.getSqlToList(sql,userId);
personnelGrouping = personnelGrouping.stream().filter(e -> DateUtil.getTime(date).compareTo(DateUtil.getTime(e.get("bdate").toString())) >=0 && (Util.null2String(e.get("edate")).equals("") || DateUtil.getTime(date).compareTo(DateUtil.getTime(e.get("edate").toString())) <=0)).collect(Collectors.toList()); personnelGrouping = personnelGrouping.stream().filter(e -> DateUtil.getTime(date).compareTo(DateUtil.getTime(e.get("bdate").toString())) >=0 && (Util.null2String(e.get("edate")).equals("") || DateUtil.getTime(date).compareTo(DateUtil.getTime(e.get("edate").toString())) <=0)).collect(Collectors.toList());
Set<String> userIds = PersongroupCommonUtil.getUserIdsByPersonnelGrouping(personnelGrouping); Set<String> userIds = PersongroupCommonUtil.getUserIdsByPersonnelGrouping(personnelGrouping,DateUtil.getCurrentDate());
userIds.add(userId); userIds.add(userId);
List<String> beContainIds = Lists.newArrayList(); List<String> beContainIds = Lists.newArrayList();
for (String resourceId:resourceIds){ for (String resourceId:resourceIds){

@ -404,10 +404,20 @@ public class PersongroupCommonUtil {
* @param personnelGroupingList * @param personnelGroupingList
* @return userIDs * @return userIDs
*/ */
public static Set<String> getUserIdsByPersonnelGrouping(List<Map<String,Object>> personnelGroupingList){ public static Set<String> getUserIdsByPersonnelGrouping(List<Map<String,Object>> personnelGroupingList,String date){
Set<String> userIds = Sets.newHashSet(); Set<String> userIds = Sets.newHashSet();
log.debug("getUserIdsByPersonnelGrouping personnelGroupingList :[{}]",personnelGroupingList); log.debug("getUserIdsByPersonnelGrouping personnelGroupingList :[{}]",personnelGroupingList);
for (Map<String,Object> data:personnelGroupingList){ for (Map<String,Object> data:personnelGroupingList){
//生效日期
String bdate = Util.null2String(data.get("bdate"));
//失效日期
String edate = Util.null2String(data.get("edate"));
if ((!"".equals(bdate) && DateUtil.getTime(date).compareTo(DateUtil.getTime(bdate)) <0) ||
(!"".equals(edate) && DateUtil.getTime(date).compareTo(DateUtil.getTime(edate)) > 0)){
continue;
}
String empid = Util.null2String(data.get("empid")); String empid = Util.null2String(data.get("empid"));
String filters = Util.null2String(data.get("filters")); String filters = Util.null2String(data.get("filters"));
String list_type = Util.null2String(data.get("list_type")); String list_type = Util.null2String(data.get("list_type"));

@ -47,20 +47,22 @@ public class GetKqCycleTimeIntervalCmd extends AbstractCommonCommand<Map<String,
log.debug("GetKqCycleTimeIntervalCmd userId:[{}],submitDateList:[{}],submitStr:[{}]",userId,submitDataList,submitStr); log.debug("GetKqCycleTimeIntervalCmd userId:[{}],submitDateList:[{}],submitStr:[{}]",userId,submitDataList,submitStr);
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqzqmc"); String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqzqmc");
String sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?";
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,userId);
Set<String> attendanceSetIdsSets = CommonUtil.getDataIds(userId,modeId,null,null); Set<String> attendanceSetIdsSets = CommonUtil.getDataIds(userId,modeId,null,null);
log.debug("attendanceSetIdsSets : {}",attendanceSetIdsSets); log.debug("attendanceSetIdsSets : {}",attendanceSetIdsSets);
if (attendanceSetIdsSets.size() == 0){ if (attendanceSetIdsSets.size() == 0){
//取默认周期 //取默认周期
String sql = "select id from uf_jcl_kq_kqzqmc where mrzq=1"; String attendanceId = Utils.getDefaultAttendanceCycle(Util.null2String(departMentMap.get("subcompanyid1")));
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql); if (!attendanceId.equals("")){
if (dataList.size() > 0){ attendanceSetIdsSets.add(attendanceId);
attendanceSetIdsSets.add(dataList.get(0).get("id").toString());
} }
} }
String sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?";
Map<String,Object> departMentMap = DbTools.getSqlToMap(sql,userId);
String deptid = Util.null2String(departMentMap.get("departmentid")); String deptid = Util.null2String(departMentMap.get("departmentid"));
String pdeptids = ""; String pdeptids = "";
List<Map<String,Object>> closeList = Lists.newArrayList(); List<Map<String,Object>> closeList = Lists.newArrayList();

@ -0,0 +1,121 @@
package com.engine.jucailinkq.common.cmd;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.jucailinkq.attendance.component.persongroup.commonutil.PersongroupCommonUtil;
import com.engine.jucailinkq.attendance.enums.ApplicableOrganizationEnum;
import com.engine.jucailinkq.common.util.DateUtil;
import com.engine.jucailinkq.common.util.DbTools;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import weaver.general.Util;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* modeid
*/
public class GetPersonBySuitOrganzationCmd extends AbstractCommonCommand<Map<String,Object>> {
public GetPersonBySuitOrganzationCmd(Map<String,Object> params){
this.params=params;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
String modeId = Util.null2String(params.get("modeId"));
String sql = "select dxlx,aqjb,dataid,dx from uf_jcl_syzz where modeid=? order by id desc";
//适用组织所有值集合
List<Map<String,Object>> organzationList = DbTools.getSqlToList(sql,modeId);
//人力资源id假别规则id
Map<String,Object> personMap = Maps.newHashMap();
//人员分组id假别规则id
Map<String,Object> personOrganzationMap = Maps.newHashMap();
//部门id假别规则id
Map<String,Object> departMentMap = Maps.newHashMap();
//分部id假别规则id
Map<String,Object> subCompanyMap = Maps.newHashMap();
for (Map<String,Object> organzation:organzationList){
String dx = Util.null2String(organzation.get("dx")).split("-")[0];
String dataid = Util.null2String(organzation.get("dataid"));
String aqjb = Util.null2String(organzation.get("aqjb"));
String dxlx = Util.null2String(organzation.get("dxlx"));
if (ApplicableOrganizationEnum.PERSONNEL.getKey().equals(dxlx)){
personMap.put(dx,dataid);
}else if (ApplicableOrganizationEnum.PERSONNEL_GROUP.getKey().equals(dxlx)){
personOrganzationMap.put(dx,dataid);
}else if (ApplicableOrganizationEnum.DEPARTMENT.getKey().equals(dxlx)){
departMentMap.put(dx+"&"+aqjb,dataid);
}else if (ApplicableOrganizationEnum.SUBCOMPANY.getKey().equals(dxlx)){
subCompanyMap.put(dx+"&"+aqjb,dataid);
}
}
if (personOrganzationMap.size() > 0){
sql = "select a.list_type,b.mainid,b.empid,b.filters,b.bdate,b.edate,b.sqltj from uf_ryqz a left join uf_ryqz_dt1 b on a.id=b.mainid where a.id=?";
for (Map.Entry<String,Object> entrySet: personOrganzationMap.entrySet()){
List<Map<String,Object>> personnelGrouping = DbTools.getSqlToList(sql,entrySet.getKey());
Set<String> userIds = PersongroupCommonUtil.getUserIdsByPersonnelGrouping(personnelGrouping, DateUtil.getCurrentDate());
for (String userId:userIds){
if (personMap.get(userId) == null){
personMap.put(userId,entrySet.getValue());
}
}
}
}
if (departMentMap.size() > 0){
Set<String> departMentIds = Sets.newHashSet();
for (Map.Entry<String,Object> entrySet: departMentMap.entrySet()){
departMentIds.add(entrySet.getKey().split("&")[0]);
}
sql = "select id,seclevel from hrmresource where departmentid in ("+String.join(",",departMentIds)+")";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql);
Map<String,List<Map<String,Object>>> dataCollect = dataList.stream().collect(Collectors.groupingBy(e->e.get("id").toString()));
for (Map.Entry<String,Object> entrySet: departMentMap.entrySet()){
String departmentid = entrySet.getKey().split("&")[0];
String aqjb = entrySet.getKey().split("&")[1];
List<Map<String,Object>> userIdsQuerybyDepartment = dataCollect.get(departmentid);
userIdsQuerybyDepartment = userIdsQuerybyDepartment.stream().filter(e->"-1".equals(e.get("seclevel")) || "".equals(aqjb) || "-".equals(aqjb) || (Integer.valueOf(aqjb.split("-")[0]) >= Integer.valueOf(e.get("seclevel").toString()) &&
Integer.valueOf(aqjb.split("-")[1]) <= Integer.valueOf(e.get("seclevel").toString()))).collect(Collectors.toList());
for (Map<String,Object> userMap :userIdsQuerybyDepartment){
if (personMap.get(userMap.get("id").toString()) == null){
personMap.put(userMap.get("id").toString(),entrySet.getValue());
}
}
}
}
if (subCompanyMap.size() > 0){
Set<String> subCompanyIds = Sets.newHashSet();
for (Map.Entry<String,Object> entrySet: subCompanyMap.entrySet()){
subCompanyIds.add(entrySet.getKey().split("&")[0]);
}
sql = "select id,seclevel from hrmresource where subcompanyid1 in ("+String.join(",",subCompanyIds)+")";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql);
Map<String,List<Map<String,Object>>> dataCollect = dataList.stream().collect(Collectors.groupingBy(e->e.get("id").toString()));
for (Map.Entry<String,Object> entrySet: subCompanyMap.entrySet()){
String subcompanyid1 = entrySet.getKey().split("&")[0];
String aqjb = entrySet.getKey().split("&")[1];
List<Map<String,Object>> userIdsQuerybySubcompany = dataCollect.get(subcompanyid1);
userIdsQuerybySubcompany = userIdsQuerybySubcompany.stream().filter(e->"-1".equals(e.get("seclevel")) || "".equals(aqjb) || "-".equals(aqjb) || (Integer.valueOf(aqjb.split("-")[0]) >= Integer.valueOf(e.get("seclevel").toString()) &&
Integer.valueOf(aqjb.split("-")[1]) <= Integer.valueOf(e.get("seclevel").toString()))).collect(Collectors.toList());
for (Map<String,Object> userMap :userIdsQuerybySubcompany){
if (personMap.get(userMap.get("id").toString()) == null){
personMap.put(userMap.get("id").toString(),entrySet.getValue());
}
}
}
}
return personMap;
}
}

@ -48,24 +48,6 @@ public class GetPersonDateBySuitOrganzation extends AbstractCommonCommand<Map<St
Map<String,Object> subCompanyMap = Maps.newHashMap(); Map<String,Object> subCompanyMap = Maps.newHashMap();
//规则id-对象id安全级别
Map<String,String> organzationByMap = Maps.newHashMap();
for (Map<String,Object> map : organzationList){
String dataid = Util.null2String(map.get("dataid"));
String aqjb = Util.null2String(map.get("aqjb"));
String dx = Util.null2String(map.get("dx")).split("-")[0];
String key = dataid+"-"+dx;
String oldvalue = organzationByMap.get(key);
if (oldvalue == null){
organzationByMap.put(key,aqjb);
}else {
oldvalue = oldvalue+","+aqjb;
organzationByMap.put(key,oldvalue);
}
}
//以假期额度生成规则id分割的假期额度生成规则值集合 //以假期额度生成规则id分割的假期额度生成规则值集合
Map<String,String> vacationMap = Maps.newHashMap(); Map<String,String> vacationMap = Maps.newHashMap();
for (Map<String,Object> vocation:vacationList){ for (Map<String,Object> vocation:vacationList){

@ -841,6 +841,36 @@ public class Utils<T> {
} }
return rqlx; return rqlx;
} }
/**
*
* @param subcompanyid1
* @return
*/
public static String getDefaultAttendanceCycle(String subcompanyid1){
String defaultCycle = "";
String parentSubcompanyids = "";
try {
parentSubcompanyids = new SubCompanyComInfo().getAllParentSubcompanyId(subcompanyid1,parentSubcompanyids);
}catch (Exception e){
log.error("getDefaultDateType error:[{}]",e);
}
parentSubcompanyids = subcompanyid1+parentSubcompanyids;
String sql = "select id,szjg from uf_jcl_kq_kqzqmc where szjg in ("+parentSubcompanyids+")";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql);
Map<String,Object> dataMap = dataList.stream().collect(Collectors.toMap(e->e.get("szjg").toString(),e->e.get("id")));
for (int i=0;i<parentSubcompanyids.split(",").length;i++){
String subId = parentSubcompanyids.split(",")[i];
defaultCycle = Util.null2String(dataMap.get(subId));
if (!"".equals(defaultCycle)){
break;
}
}
return defaultCycle;
}
/** /**
* *
* @param subcompanyid1 * @param subcompanyid1

Loading…
Cancel
Save