个人页面接口,加班时间计算bug,清理离职数据功能,打卡匹配bug修复,规律排班bug修复,假期发放起算日期数据异常bug修复。请假、加班、出差补打卡流程归档自动分析出勤功能,

main
liuliang 2 months ago
parent e24f95eeb3
commit 391c4cbc08

@ -215,6 +215,7 @@ public class GetScheduleResultListCmd extends AbstractCommonCommand<Map<String,O
}
}
schedulMap.put("scheduleDateMap",schedulingResultsMap.get("data"));
schedulMap.put("schedulingResultsMap",resultMap);
schedulMap.put("clockInTimeDataMap",clockInTimeDataMap);
log.debug("SchedulingResults : [{}]",schedulMap);

@ -223,20 +223,25 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
if (leaveEarlyAbnormal.size() > 0) {
String hsdw = Util.null2String(leaveEarlyAbnormal.get(0).get("hsdw"));
String itemduration = Util.null2String(leaveEarlyAbnormal.get(0).get("itemduration"));
String jbsczkchssc = Util.null2String(leaveEarlyAbnormal.get(0).get("jbsczkchssc"));
AttendanceItemTypeEnum itemType = (AttendanceItemTypeEnum) leaveEarlyAbnormal.get(0).get("itemType");
if (itemType == AttendanceItemTypeEnum.MISSE_CARD) {
//下午漏卡
leaveElaryTime = jbsc;
if ("".equals(jbsczkchssc) || CheckBoxEnum.CHECKED.getKey().equals(jbsczkchssc)){
leaveElaryTime = jbsc;
}
} else {
if (AccountingUnitEnum.DAY.getKey().equals(hsdw)) {
leaveElaryTime = Integer.valueOf(scheduleMap.get("edsc").toString()) * Double.valueOf(itemduration);
} else if (AccountingUnitEnum.HOUR.getKey().equals(hsdw)) {
leaveElaryTime = Double.valueOf(itemduration) * 60;
} else if (AccountingUnitEnum.MINUTES.getKey().equals(hsdw)) {
leaveElaryTime = Double.valueOf(itemduration);
} else if (AccountingUnitEnum.ONCE.getKey().equals(hsdw)) {
leaveElaryTime = jbsc;
if ("".equals(jbsczkchssc) || CheckBoxEnum.CHECKED.getKey().equals(jbsczkchssc)){
if (AccountingUnitEnum.DAY.getKey().equals(hsdw)) {
leaveElaryTime = Integer.valueOf(scheduleMap.get("edsc").toString()) * Double.valueOf(itemduration);
} else if (AccountingUnitEnum.HOUR.getKey().equals(hsdw)) {
leaveElaryTime = Double.valueOf(itemduration) * 60;
} else if (AccountingUnitEnum.MINUTES.getKey().equals(hsdw)) {
leaveElaryTime = Double.valueOf(itemduration);
} else if (AccountingUnitEnum.ONCE.getKey().equals(hsdw)) {
leaveElaryTime = jbsc;
}
}
}
} else {

@ -56,7 +56,7 @@ public class AttendanceAnalysisJob extends BaseCronJob {
//查询所有在职人员
String queryUserSql = "select id,departmentid,subcompanyid1,companystartdate,seclevel from hrmresource where status <> '5' and status <> '4' and status <> '7'";
String queryUserSql = "select id,departmentid,subcompanyid1,companystartdate,seclevel from hrmresource where status <> '5' and status <> '4' and status <> '7' and (belongto is null or belongto='-1')";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
@ -66,7 +66,7 @@ public class AttendanceAnalysisJob extends BaseCronJob {
List<List<String>> departEmployeePartition = Lists.partition(departEmployeeList,200);
for (List<String> userIdPartition :departEmployeePartition){
String sql = "select id,departmentid,subcompanyid1,companystartdate from hrmresource where id in ("+String.join(",",userIdPartition)+")";
String sql = "select id,departmentid,subcompanyid1,companystartdate from hrmresource where id in ("+String.join(",",userIdPartition)+") and (belongto is null or belongto='-1')";
userList.addAll(DbTools.getSqlToList(sql));
}
}

@ -133,6 +133,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
if (!"".equals(jbwdhlfzs) && between > Integer.valueOf(jbwdhlfzs)){
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
String kczgsc = Util.null2String(lateItems.get(0).get("kczgsc"));
String jbsczkchssc = Util.null2String(lateItems.get(0).get("jbsczkchssc"));
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
saveWorkTimeBeLateParam.put("item",lateItems.get(0).get("key"));
saveWorkTimeBeLateParam.put("itemduration",itemduration);
@ -141,6 +142,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
saveWorkTimeBeLateParam.put("hsdw",hsdw);
saveWorkTimeBeLateParam.put("hsl",hsl);
saveWorkTimeBeLateParam.put("kczgsc",kczgsc);
saveWorkTimeBeLateParam.put("jbsczkchssc",jbsczkchssc);
saveWorkTimeBeLateParam.put("classStartTime",classStartTime);
saveWorkTimeBeLateParam.put("classEndTime",clockInTime);
resultList.add(saveWorkTimeBeLateParam);
@ -294,6 +296,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
if (!"".equals(jbzzhlfzs) && between > Integer.valueOf(jbzzhlfzs)){
log.debug("between :{},jbzzhlfzs:{}",between,jbzzhlfzs);
String kczgsc = Util.null2String(beEarlyItems.get(0).get("kczgsc"));
String jbsczkchssc = Util.null2String(beEarlyItems.get(0).get("jbsczkchssc"));
double itemduration = Utils.getItemduration(hsl,hsdw,between,AccountingUnitEnum.MINUTES,Double.valueOf(scheduleResult.get(0).get("edsc").toString()));
Map<String,Object> saveWorkTimeBeLateParam = Maps.newHashMap();
saveWorkTimeBeLateParam.put("item",beEarlyItems.get(0).get("key"));
@ -302,6 +305,7 @@ public class AbnormalAttendanceServiceImpl extends Service implements AbnormalAt
saveWorkTimeBeLateParam.put("itemType", AttendanceItemTypeEnum.LEAVE_EARLY);
saveWorkTimeBeLateParam.put("hsdw",hsdw);
saveWorkTimeBeLateParam.put("kczgsc",kczgsc);
saveWorkTimeBeLateParam.put("jbsczkchssc",jbsczkchssc);
saveWorkTimeBeLateParam.put("hsl",hsl);
saveWorkTimeBeLateParam.put("classStartTime",clockInTime);
saveWorkTimeBeLateParam.put("classEndTime",classEndTime);

@ -55,6 +55,7 @@ public class ForgetClockInServiceImpl extends Service implements ForgetClockInSe
forgetParam.put("itemType", AttendanceItemTypeEnum.MISSE_CARD);
forgetParam.put("zysd",attendanceItems.get(0).get("zysd"));
forgetParam.put("kczgsc", CheckBoxEnum.CHECKED.getKey());
forgetParam.put("jbsczkchssc", CheckBoxEnum.CHECKED.getKey());
// forgetParam.put("classStartTime",Utils.getkssjTime(classInfo,analysisDate));
//forgetParam.put("classEndTime",Utils.getjssjTime(classInfo,analysisDate));
//forgetParam.put("betweenMinutes",DateUtil.getBetWeenMinutes(forgetParam.get("classStartTime").toString(),forgetParam.get("classEndTime").toString()));
@ -124,6 +125,7 @@ public class ForgetClockInServiceImpl extends Service implements ForgetClockInSe
forgotMap.put("bdlx",bdlx);
forgotMap.put("hsdw",hsdw);
forgotMap.put("kczgsc",items.get(0).get("kczgsc"));
forgotMap.put("jbsczkchssc",items.get(0).get("jbsczkchssc"));
forgotMap.put("betweenMinutes",Double.valueOf(edfzs).intValue());
forgotMap.put("hsl",items.get(0).get("hsl"));
forgotMap.put("classStartTime",dtkssj);

@ -99,7 +99,7 @@ public class AttendaceActionWrapper extends Service {
List<Map<String,Object>> hxbzList = DbTools.getSqlToList(queryHxbz);
String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where status <> '5' and status <> '4' and status <> '7'";
String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where status <> '5' and status <> '4' and status <> '7' and (belongto is null or belongto='-1')";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and signdate >= ? and signdate <= ? order by signdate,signtime";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
@ -125,7 +125,7 @@ public class AttendaceActionWrapper extends Service {
String companystartDate = Util.null2String(userMap.get("companystartdate"));
//离职日期
String terminationDate = Util.null2String(departEmployeeMap.get(userId));
if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(companystartDate)) <=0){
if (!"".equals(terminationDate) && !"".equals(companystartDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(companystartDate)) <=0){
terminationDate="";
}
@ -217,7 +217,7 @@ public class AttendaceActionWrapper extends Service {
String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and userid in ("+userIds+") and signdate >= ? and signdate <= ? order by signdate,signtime";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where id in ("+userIds+")";
String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where id in ("+userIds+") and (belongto is null or belongto='-1')";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
Map<String,List<Map<String,Object>>> userGroupMap = userList.stream().collect(Collectors.groupingBy(e->e.get("id").toString()));
@ -243,7 +243,7 @@ public class AttendaceActionWrapper extends Service {
String companystartDate = Util.null2String(userGroupMap.get(userId).get(0).get("companystartdate"));
//离职日期
String terminationDate = Util.null2String(departEmployeeMap.get(userId));
if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(companystartDate)) <=0){
if (!"".equals(terminationDate) && !"".equals(companystartDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(companystartDate)) <=0){
terminationDate="";
}

@ -176,7 +176,7 @@ public class AttendanceAnalysisWrapper extends Service {
List<Map<String, Object>> analysisDateClockInTimeList = utilService.getClockInTime(getClockTimeParam);
//分析考勤
Map<String, Object> recordDataTime1 = analysis(userId, analysisDate, analysisDateClockInTimeList, schedulingResultsMap.get(analysisDate), analysisDateAttendanceItems, workHourItems,(Map<String,Object>)schedulMap.get("clockInTimeDataMap"),
(List<Map<String,Object>>)analysisParam.get("evectionList"),(List<Map<String,Object>>)analysisParam.get("askforList"));
(List<Map<String,Object>>)analysisParam.get("evectionList"),(List<Map<String,Object>>)analysisParam.get("askforList"),(List<Map<String,Object>>)schedulMap.get("scheduleDateMap"));
clockInTimeMap.put(analysisDate, recordDataTime1);
}
}catch (Exception e){
@ -327,7 +327,7 @@ public class AttendanceAnalysisWrapper extends Service {
//打卡数据
List<Map<String, Object>> analysisDateClockInTimeList = utilService.getClockInTime(getClockTimeParam);
Map<String, Object> recordDataTime1 = analysis(userId, analysisDate, analysisDateClockInTimeList, schedulingResultsMap.get(analysisDate), analysisDateAttendanceItems, workHourItems,(Map<String,Object>)schedulMap.get("clockInTimeDataMap"),
(List<Map<String,Object>>)analysisParam.get("evectionList"),(List<Map<String,Object>>)analysisParam.get("askforList"));
(List<Map<String,Object>>)analysisParam.get("evectionList"),(List<Map<String,Object>>)analysisParam.get("askforList"),(List<Map<String,Object>>)schedulMap.get("scheduleDateMap"));
clockInTimeMap.put(analysisDate, recordDataTime1);
}
@ -341,7 +341,7 @@ public class AttendanceAnalysisWrapper extends Service {
* @param attendanceItems
*/
public Map<String, Object> analysis(String userId, String analysisDate, List<Map<String, Object>> clockInTimeList, List<Map<String, Object>> scheduleResult, List<Map<String, Object>> attendanceItems, List<Map<String, Object>> workHourItems
,Map<String,Object> clockInTimeDataMap,List<Map<String, Object>> evectionList,List<Map<String, Object>> askforList) {
,Map<String,Object> clockInTimeDataMap,List<Map<String, Object>> evectionList,List<Map<String, Object>> askforList,List<Map<String,Object>> scheduleDateMap) {
if (scheduleResult != null){
scheduleResult = scheduleResult.stream().sorted(Comparator.comparing(e -> DateUtil.getTime(Utils.getkssjTime(e, analysisDate)).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
}
@ -392,6 +392,7 @@ public class AttendanceAnalysisWrapper extends Service {
params.put("workHourItems", workHourItems);
params.put("attendanceItems", attendanceItems);
params.put("allowanceMap", allowanceMap);
params.put("scheduleDateMap",scheduleDateMap);
return (Map<String,Object>)updateAttendanceResultWrapper.recordNoClass(params).get("recordDataTime");
}

@ -599,14 +599,25 @@ public class UpdateAttendanceResultWrapper extends Service {
//津贴
Map<String,Object> allowanceMap = (Map<String,Object>)params.get("allowanceMap");
List<Map<String,Object>> scheduleDateMap = (List<Map<String,Object>>)params.get("scheduleDateMap");
log.debug("userId : {} ,analysisDate: {} have no class",userId,analysisDate);
Map<String,Object> recordParam = Maps.newHashMap();
recordParam.put("userId",userId);
recordParam.put("analysisDate",analysisDate);
recordParam.put("recordData",Lists.newArrayList());
String rqlx = CommonUtil.getRqlx(userId,analysisDate);
recordParam.put("rqlx",rqlx);
String rqlx = null;
String sfxx = "";
if (scheduleDateMap != null && scheduleDateMap.size() >0){
rqlx = scheduleDateMap.get(0).get("rqlx").toString();
sfxx = scheduleDateMap.get(0).get("sfxx").toString();
recordParam.put("rqlx",scheduleDateMap.get(0).get("rqlx"));
}else {
rqlx = CommonUtil.getRqlx(userId,analysisDate);
recordParam.put("rqlx",rqlx);
}
recordParam.put("classInfo",Lists.newArrayList());
recordParam.put("recordDataTime",Maps.newHashMap());
@ -619,15 +630,20 @@ public class UpdateAttendanceResultWrapper extends Service {
utilService.recordItem(recordParam);
return recordParam;
}
if (rqlx.equals(DateTypeEnum.WORK_DAY.getKey()) || rqlx.equals(DateTypeEnum.CHANGECLASS.getKey())){
if ((rqlx.equals(DateTypeEnum.WORK_DAY.getKey()) || rqlx.equals(DateTypeEnum.CHANGECLASS.getKey())) && !CheckBoxEnum.CHECKED.getKey().equals(sfxx)){
recordParam.put("cqzt",CheckBoxEnum.CHECKED.getKey());
recordDataList.add(new HashMap(){{
put("item",SystemItemEnum.NO_SCHEDULING.getKey());
put("itemduration","NULL");
}});
}else {
recordParam.put("cqzt",CheckBoxEnum.UNCHECKED.getKey());
recordParam.put("sfxx",CheckBoxEnum.CHECKED.getKey());
recordDataList.add(new HashMap(){{
put("item",SystemItemEnum.REST_DAY.getKey());
put("itemduration","NULL");
}});
}

@ -69,9 +69,11 @@ public class WorkRulesServiceImpl extends Service implements WorkRulesService {
if (bcids.size() > 0){
sqlWhere = sqlWhere + " and t.id in ("+String.join(",",bcids)+")";
}
sqlWhere = sqlWhere + " or attendance_organization is null";
sqlWhere = sqlWhere + " or t.attendance_organization is null";
table.setSqlwhere(sqlWhere);
table.setSqlorderby("t.modedatacreatedate,t.modedatacreatetime");
table.setSqlprimarykey("id");

@ -76,64 +76,67 @@ public class GetPersonPageServiceCmd extends AbstractCommonCommand<Map<String,Ob
sql = "select jqxm,zsdw,tzhwxs,zjq from uf_jcl_kq_holidayshowset where zt=1";
List<Map<String,Object>> holidayShowSet = DbTools.getSqlToList(sql);
Map<String,Map<String,Object>> newholidayMap = Maps.newHashMap();
for (Map<String,Object> holidayShow:holidayShowSet){
String jqxm = Util.null2String(holidayShow.get("jqxm"));
Map<String,Object> fatherHoliday = holidayMap.get(jqxm);
if (fatherHoliday == null){
continue;
}
String sonjqxm = Util.null2String(holidayShow.get("zjq"));
String zsdw = Util.null2String(holidayShow.get("zsdw"));
String tzhwxs = Util.null2String(holidayShow.get("tzhwxs"));
if (!"".equals(sonjqxm)){
for (String item:sonjqxm.split(",")){
Map<String,Object> sonHoliday = holidayMap.get(item);
if (sonHoliday != null){
fatherHoliday.put("allHoliday",Double.valueOf(fatherHoliday.get("allHoliday").toString())+Double.valueOf(sonHoliday.get("allHoliday").toString()));
fatherHoliday.put("oldHoliday",Double.valueOf(fatherHoliday.get("oldHoliday").toString())+Double.valueOf(sonHoliday.get("oldHoliday").toString()));
fatherHoliday.put("nowHoliday",Double.valueOf(fatherHoliday.get("nowHoliday").toString())+Double.valueOf(sonHoliday.get("nowHoliday").toString()));
if (holidayShowSet.size() == 0){
newholidayMap = holidayMap;
}else {
for (Map<String,Object> holidayShow:holidayShowSet){
String jqxm = Util.null2String(holidayShow.get("jqxm"));
Map<String,Object> fatherHoliday = holidayMap.get(jqxm);
if (fatherHoliday == null){
continue;
}
String sonjqxm = Util.null2String(holidayShow.get("zjq"));
String zsdw = Util.null2String(holidayShow.get("zsdw"));
String tzhwxs = Util.null2String(holidayShow.get("tzhwxs"));
if (!"".equals(sonjqxm)){
for (String item:sonjqxm.split(",")){
Map<String,Object> sonHoliday = holidayMap.get(item);
if (sonHoliday != null){
fatherHoliday.put("allHoliday",Double.valueOf(fatherHoliday.get("allHoliday").toString())+Double.valueOf(sonHoliday.get("allHoliday").toString()));
fatherHoliday.put("oldHoliday",Double.valueOf(fatherHoliday.get("oldHoliday").toString())+Double.valueOf(sonHoliday.get("oldHoliday").toString()));
fatherHoliday.put("nowHoliday",Double.valueOf(fatherHoliday.get("nowHoliday").toString())+Double.valueOf(sonHoliday.get("nowHoliday").toString()));
}
}
}
}
String hsdw = Util.null2String(fatherHoliday.get("hsdw"));
double tzhwxsValue = Double.valueOf(tzhwxs);
if (zsdw.equals("0")){
//天
String hsdw = Util.null2String(fatherHoliday.get("hsdw"));
double tzhwxsValue = Double.valueOf(tzhwxs);
if (zsdw.equals("0")){
//天
if (AccountingUnitEnum.HOUR.getKey().equals(hsdw) && !"".equals(tzhwxs)){
if (AccountingUnitEnum.HOUR.getKey().equals(hsdw) && !"".equals(tzhwxs)){
fatherHoliday.put("allHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("allHoliday").toString()),tzhwxsValue));
fatherHoliday.put("oldHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("oldHoliday").toString()),tzhwxsValue));
fatherHoliday.put("nowHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("nowHoliday").toString()),tzhwxsValue));
fatherHoliday.put("allHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("allHoliday").toString()),tzhwxsValue));
fatherHoliday.put("oldHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("oldHoliday").toString()),tzhwxsValue));
fatherHoliday.put("nowHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("nowHoliday").toString()),tzhwxsValue));
}else if (AccountingUnitEnum.MINUTES.getKey().equals(hsdw)){
}else if (AccountingUnitEnum.MINUTES.getKey().equals(hsdw)){
fatherHoliday.put("allHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("allHoliday").toString()),tzhwxsValue*60));
fatherHoliday.put("oldHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("oldHoliday").toString()),tzhwxsValue*60));
fatherHoliday.put("nowHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("nowHoliday").toString()),tzhwxsValue*60));
fatherHoliday.put("allHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("allHoliday").toString()),tzhwxsValue*60));
fatherHoliday.put("oldHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("oldHoliday").toString()),tzhwxsValue*60));
fatherHoliday.put("nowHoliday", Utils.divide(Double.valueOf(fatherHoliday.get("nowHoliday").toString()),tzhwxsValue*60));
}
}else if (zsdw.equals("1")){
//小时
if (AccountingUnitEnum.DAY.getKey().equals(hsdw) && !"".equals(tzhwxs)){
fatherHoliday.put("allHoliday", Double.valueOf(fatherHoliday.get("allHoliday").toString())*tzhwxsValue);
fatherHoliday.put("oldHoliday", Double.valueOf(fatherHoliday.get("oldHoliday").toString())*tzhwxsValue);
fatherHoliday.put("nowHoliday", Double.valueOf(fatherHoliday.get("nowHoliday").toString())*tzhwxsValue);
}else if (AccountingUnitEnum.MINUTES.getKey().equals(hsdw)){
fatherHoliday.put("allHoliday", Double.valueOf(fatherHoliday.get("allHoliday").toString())*60);
fatherHoliday.put("oldHoliday", Double.valueOf(fatherHoliday.get("oldHoliday").toString())*60);
fatherHoliday.put("nowHoliday", Double.valueOf(fatherHoliday.get("nowHoliday").toString())*60);
}
}else if (zsdw.equals("1")){
//小时
if (AccountingUnitEnum.DAY.getKey().equals(hsdw) && !"".equals(tzhwxs)){
fatherHoliday.put("allHoliday", Double.valueOf(fatherHoliday.get("allHoliday").toString())*tzhwxsValue);
fatherHoliday.put("oldHoliday", Double.valueOf(fatherHoliday.get("oldHoliday").toString())*tzhwxsValue);
fatherHoliday.put("nowHoliday", Double.valueOf(fatherHoliday.get("nowHoliday").toString())*tzhwxsValue);
}else if (AccountingUnitEnum.MINUTES.getKey().equals(hsdw)){
fatherHoliday.put("allHoliday", Double.valueOf(fatherHoliday.get("allHoliday").toString())*60);
fatherHoliday.put("oldHoliday", Double.valueOf(fatherHoliday.get("oldHoliday").toString())*60);
fatherHoliday.put("nowHoliday", Double.valueOf(fatherHoliday.get("nowHoliday").toString())*60);
}
}
}
newholidayMap.put(jqxm,fatherHoliday);
}
newholidayMap.put(jqxm,fatherHoliday);
}
resultMap.put("holiday",newholidayMap);
int diffdays = DateUtil.getDays(generateDate, Calendar.DAY_OF_MONTH);
String startDate = generateDate + "-01";

@ -0,0 +1,44 @@
package com.engine.jucailinkq.attendance.component.persongroup.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.common.util.DateUtil;
import com.engine.jucailinkq.common.util.DbTools;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import weaver.general.Util;
import java.util.List;
import java.util.Map;
public class GetManagerHavePersonCmd extends AbstractCommonCommand<Map<String,Object>> {
public GetManagerHavePersonCmd(Map<String, Object> params){
this.params=params;
}
@Override
public BizLogContext getLogContext() {
return null;
}
@Override
public Map<String, Object> execute(CommandContext commandContext) {
String sql = "select * from uf_ryqz where userfor=5";
List<Map<String,Object>> personnelGrouping = DbTools.getSqlToList(sql);
Map<String,Object> resultMap = Maps.newHashMap();
List<Map<String,Object>> resultList = Lists.newArrayList();
resultMap.put("resultList",resultList);
for (Map<String,Object> personnelGroupMap : personnelGrouping){
String fzgly = Util.null2String(personnelGroupMap.get("fzgly"));
Map<String,Object> dataMap = Maps.newHashMap();
dataMap.put("manager",fzgly);
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=?";
List<Map<String,Object>> list = DbTools.getSqlToList(sql,personnelGroupMap.get("id"));
dataMap.put("personSet", PersongroupCommonUtil.getUserIdsByPersonnelGrouping(list, DateUtil.getCurrentDate()));
resultList.add(dataMap);
}
return resultMap;
}
}

@ -126,26 +126,20 @@ public class PersongroupCommonUtil {
* @return
*/
public static int getNeedSkipDay(String jjrcl,String gxrcl,String rlmc,String dateCondition){
String sql = "select count(0) num from uf_jcl_kq_rlxx where rlmc=? and "+dateCondition;
String sql = "select rqlx from uf_jcl_kq_rlxx where rlmc=? and "+dateCondition;
String conditionSql = "";
int needSkipDay = 0;
List<Map<String,Object>> resutlList = DbTools.getSqlToList(sql,rlmc);
if ("1".equals(jjrcl)){
//节假日为跳过
conditionSql = conditionSql + " rqlx=1";
needSkipDay += resutlList.stream().filter(e->"1".equals(e.get("rqlx"))).collect(Collectors.toList()).size();
}
if ("1".equals(gxrcl)){
//公休日为跳过
if ("".equals(conditionSql)){
conditionSql = conditionSql + " rqlx=2 or rqlx=3";
}else {
conditionSql = conditionSql + " or rqlx=2 or rqlx=3";
}
}
if (!"".equals(conditionSql)){
sql = sql + " and ( "+conditionSql+")";
log.debug("getNeedSkipDay sql : {},rlmc : {}",sql,rlmc);
Map<String,Object> objectMap = DbTools.getSqlToMap(sql,rlmc);
needSkipDay = Integer.valueOf(objectMap.get("num").toString());
//节假日为跳过
needSkipDay += resutlList.stream().filter(e->"2".equals(e.get("rqlx")) || "3".equals(e.get("rqlx"))).collect(Collectors.toList()).size();
}
return needSkipDay;

@ -9,4 +9,6 @@ public interface PersonGroupService {
Map<String,Object> getHrmCondition(Map<String,Object> params, User user);
Map<String,Object> saveApplicableOrganization(Map<String,Object> params);
Map<String,Object> getManagerHavePerson(Map<String,Object> params);
}

@ -1,6 +1,8 @@
package com.engine.jucailinkq.attendance.component.persongroup.service.impl;
import com.engine.jucailinkq.attendance.component.persongroup.cmd.DeleteBatchScheduleCmd;
import com.engine.jucailinkq.attendance.component.persongroup.cmd.GetManagerHavePersonCmd;
import com.engine.jucailinkq.attendance.component.persongroup.service.PersonGroupService;
import com.engine.jucailinkq.common.util.DbTools;
import com.engine.jucailinkq.common.util.Utils;
@ -120,4 +122,9 @@ public class PersonGroupServiceImpl extends Service implements PersonGroupServic
resultMap.put("result",rs.executeBatchSql(insertSql,addLists));
return resultMap;
}
@Override
public Map<String, Object> getManagerHavePerson(Map<String, Object> params) {
return commandExecutor.execute(new GetManagerHavePersonCmd(params));
}
}

@ -60,4 +60,20 @@ public class PersonGroupAction {
}
}
@GET
@Path("/getManagerHavePerson")
@Produces({"text/plain"})
public String getManagerHavePerson(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try {
User user = HrmUserVarify.getUser(request,response);
Map<String,Object> paramMap = ParamUtil.request2Map(request);
Map<String,Object> dataMap = basicsetService.getManagerHavePerson(paramMap);
return ApiReturnTools.success(dataMap);
}catch (Exception e){
log.error("execute fail,catch error: [{}]",e);
return ApiReturnTools.error("500","getHrmCondition error");
}
}
}

@ -1,8 +1,12 @@
package com.engine.jucailinkq.attendance.vacation.cmd;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.engine.jucailinkq.attendance.vacation.job.holidaygeneration.tactics.HolidayGenerationWay;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.jucailinkq.common.util.CommonUtil;
import com.engine.jucailinkq.common.util.DateUtil;
import com.engine.jucailinkq.common.util.DbTools;
import com.engine.jucailinkq.common.util.Utils;
import com.engine.core.interceptor.CommandContext;
@ -13,6 +17,7 @@ import weaver.general.Util;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
@Slf4j
@ -107,11 +112,32 @@ public class VocationCmd extends AbstractCommonCommand<Map<String,Object>> {
}
log.debug("VocationCmd params: [{}]",params);
String edfffs = Util.null2String(vocationList.get(0).get("edfffs"));
List<Map<String,Object>> dataList = Lists.newArrayList();
for (HolidayGenerationWay holidayGenerationWay :rulers){
if (holidayGenerationWay.support(Integer.valueOf(edfffs))){
holidayGenerationWay.compute(params);
try {
holidayGenerationWay.compute(params);
}catch (Exception e){
Map<String,Object> dataMap = Maps.newHashMap();
dataMap.put("ycnr",e.toString());
dataMap.put("ycsj", DateUtil.getCurrentTime());
dataMap.put("ycry", Util.null2String(params.get("userId")));
dataMap.put("ycjq",vocationList.get(0).get("jb"));
dataMap.put("ycjqcs", JSON.toJSONString(vocationList));
dataMap.put("formmodeid",params.get("errorMode"));
dataMap.put("modeuuid", UUID.randomUUID().toString());
dataMap.put("modedatacreater","1");
dataMap.put("modedatacreatertype","0");
dataMap.put("modedatacreatedate",DateUtil.getCurrentTime().split(" ")[0]);
dataMap.put("modedatacreatetime",DateUtil.getCurrentTime().split(" ")[1]);
dataList.add(dataMap);
log.error("VocationCmd error : [{}]",e);
}
}
}
if (dataList.size() >0){
CommonUtil.insertBatch(dataList,"uf_jcl_kq_jqerror");
}
return null;
}

@ -346,7 +346,8 @@ public class ByIntervalPayMentWay implements HolidayGenerationWay{
//残年分割日期
String divideTime = DateUtil.beforeMonth(qsrq,seniority);
divideTime = sxrq.split("-")[0]+"-"+divideTime.split("-")[1]+"-"+divideTime.split("-")[2];
//divideTime = sxrq.split("-")[0]+"-"+divideTime.split("-")[1]+"-"+divideTime.split("-")[2];
divideTime = DateUtil.nextYear(divideTime,endYear,DateUtil.yyyyMMdd);
if (jgscsf.equals("2")){
//直接取工龄字段
beginYear = seniority/12;

@ -55,7 +55,8 @@ public class VocationServiceImpl extends Service implements VocationService {
dataList.addAll(resultList);
}
Map<String,List<Map<String,Object>>> userIdMap = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
sql = "select c.id name,b.tablename id from workflow_bill b left join modeinfo c on b.id=c.formid where (c.isDelete is null or c.isDelete <> '1') and tablename in ('uf_jcl_kq_jqerror')";
Map<String,Object> errorModeMap = DbTools.getSqlToMapList(sql);
for (Map.Entry<String, Object> entry : result.entrySet()){
String userId = entry.getKey();
@ -84,6 +85,7 @@ public class VocationServiceImpl extends Service implements VocationService {
vocationParam.put("releaseDate",params.get("releaseDate"));
vocationParam.put("cover",params.get("cover"));
vocationParam.put("leaveDate",departEmployeeMap.get(userId));
vocationParam.put("errorMode",errorModeMap.get("uf_jcl_kq_jqerror"));
commandExecutor.execute(new VocationCmd(vocationParam));
}
}

@ -52,6 +52,9 @@ public class GenerateWorkflowVocationAction implements Action {
String sql = "select a.id userid,a.*,b.* from hrmresource a left join cus_fielddata b on a.id=b.id where a.id =?";
List<Map<String,Object>> userList = DbTools.getSqlToListKeySmallLetter(sql,qjry);
sql = "select c.id name,b.tablename id from workflow_bill b left join modeinfo c on b.id=c.formid where (c.isDelete is null or c.isDelete <> '1') and tablename in ('uf_jcl_kq_jqerror')";
Map<String,Object> errorModeMap = DbTools.getSqlToMapList(sql);
log.info("GenerateWorkflowVocationAction : [{}]",result.get(qjry));
if (result.get(qjry) != null){
Map<String,String> vocationMap = (Map<String, String>)result.get(qjry);
@ -78,6 +81,7 @@ public class GenerateWorkflowVocationAction implements Action {
vocationParam.put("releaseDate",params.get("releaseDate"));
vocationParam.put("cover",params.get("cover"));
vocationParam.put("leaveDate",departEmployeeMap.get(qjry));
vocationParam.put("errorMode",errorModeMap.get("uf_jcl_kq_jqerror"));
new VocationCmd(vocationParam).execute(null);
}
}

@ -96,6 +96,8 @@ public class CleanHaveLeaveUserDataCmd extends AbstractCommonCommand<Map<String,
DbTools.update(updateSql, user, startDate, beforeCompanystartdateDay);
}
}
}else if (!"".equals(companystartdate) && DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(endDate))>0){
DbTools.update(updateSql,user,startDate,endDate);
}
if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(endDate)) <= 0 &&
DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(startDate)) >= 0) {
@ -107,6 +109,8 @@ public class CleanHaveLeaveUserDataCmd extends AbstractCommonCommand<Map<String,
DbTools.update(updateSql, user, AfterDay, endDate);
}
}
}else if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(startDate))<0 ){
DbTools.update(updateSql,user,startDate,endDate);
}
}

@ -115,7 +115,7 @@ public class GetPersonVocationBySuitOrganzation extends AbstractCommonCommand<Ma
}else if (subCompanyIds .size() >0 && departMentIds.size() == 0){
sql = sql+ " and subcompanyid1 in ("+String.join(",",subCompanyIds)+")";
}
sql += " and (belongto is null or belongto='-1') ";
List<Map<String,Object>> hrmListByDepartAndSubCompanyIds = DbTools.getSqlToList(sql);
//部门id-人员id集合
@ -256,11 +256,11 @@ public class GetPersonVocationBySuitOrganzation extends AbstractCommonCommand<Ma
}else if ("1".equals(list_type) && !"".equals(filters)){
//条件清单
sql = "select id,seclevel from hrmresource where status <> '5' and status <> '4' and status <> '7' ";
sql = "select id,seclevel from hrmresource where status <> '5' and status <> '4' and status <> '7' and (belongto is null or belongto='-1') ";
filters = filters.replace("","and");
filters = filters.replace("","or");
if (filters.contains("field")){
sql = "select a.id,a.seclevel from hrmresource a left join cus_fielddata b on a.id=b.id where scope='HrmCustomFieldByInfoType' and a.status <> '5' and a.status <> '4' and a.status <> '7' and "+filters;
sql = "select a.id,a.seclevel from hrmresource a left join cus_fielddata b on a.id=b.id where scope='HrmCustomFieldByInfoType' and a.status <> '5' and a.status <> '4' and a.status <> '7' and (a.belongto is null or a.belongto='-1') and "+filters;
}else {
sql = sql+ " and "+filters;
}
@ -275,9 +275,14 @@ public class GetPersonVocationBySuitOrganzation extends AbstractCommonCommand<Ma
sqltj = Utils.converSQL(sqltj);
log.debug("getPersonnelGroupingByPerson sqltj : [{}]",sqltj);
List<Map<String,Object>> dataList = DbTools.getSqlToList(sqltj);
sql = "select id from hrmresource where belongto is null or belongto='-1'";
List<Map<String,Object>> hrmListMap = DbTools.getSqlToList(sql);
List<String> hrmList = hrmListMap.stream().map(e->e.get("id").toString()).collect(Collectors.toList());
for (Map<String,Object> dataMap :dataList){
String hrmId = Util.null2String(dataMap.get("id"));
userIds.add(hrmId);
if (hrmList.contains(hrmId)){
userIds.add(hrmId);
}
}
}
}

Loading…
Cancel
Save