修复弹性上下班的问题,修复打卡匹配班次bug,修复假期发放bug

main
liuliang 5 months ago
parent cbf17d1877
commit 69afe99c53

@ -608,7 +608,7 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(beforejssj)) == 0 && ifWorkClassSegment(beforeScheduleMap.get("bdlx").toString()) && if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(beforejssj)) == 0 && ifWorkClassSegment(beforeScheduleMap.get("bdlx").toString()) &&
scheduleMap.get("jsdk").equals(CheckBoxEnum.UNCHECKED.getKey()) && scheduleMap.get("ksdk").equals(CheckBoxEnum.UNCHECKED.getKey()) && scheduleMap.get("jsdk").equals(CheckBoxEnum.UNCHECKED.getKey()) && scheduleMap.get("ksdk").equals(CheckBoxEnum.UNCHECKED.getKey()) &&
beforeScheduleMap.get("jsdk").equals(CheckBoxEnum.CHECKED.getKey())){ beforeScheduleMap.get("jsdk").equals(CheckBoxEnum.CHECKED.getKey())){
int thdkfzs = DateUtil.getBetWeenMinutes(Utils.getjssjTime(beforeScheduleMap,analysisDate),Utils.getjssjTime(scheduleMap,analysisDate))+Integer.valueOf(beforeScheduleMap.get("thdkfzs").toString()); int thdkfzs = DateUtil.getBetWeenMinutes(Utils.getjssjTime(beforeScheduleMap,analysisDate),Utils.getjssjTime(scheduleMap,analysisDate))+Integer.valueOf(beforeScheduleMap.get("thdkfzs") == null?"60":beforeScheduleMap.get("thdkfzs").toString());
beforeScheduleMap.put("thdkfzs",thdkfzs); beforeScheduleMap.put("thdkfzs",thdkfzs);
} }
@ -630,7 +630,7 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
if (DateUtil.getTime(jssj).compareTo(DateUtil.getTime(afterkssj)) == 0 && ifWorkClassSegment(afterScheduleMap.get("bdlx").toString()) && if (DateUtil.getTime(jssj).compareTo(DateUtil.getTime(afterkssj)) == 0 && ifWorkClassSegment(afterScheduleMap.get("bdlx").toString()) &&
scheduleMap.get("ksdk").equals(CheckBoxEnum.UNCHECKED.getKey()) &&scheduleMap.get("jsdk").equals(CheckBoxEnum.UNCHECKED.getKey()) && scheduleMap.get("ksdk").equals(CheckBoxEnum.UNCHECKED.getKey()) &&scheduleMap.get("jsdk").equals(CheckBoxEnum.UNCHECKED.getKey()) &&
afterScheduleMap.get("ksdk").equals(CheckBoxEnum.CHECKED.getKey())){ afterScheduleMap.get("ksdk").equals(CheckBoxEnum.CHECKED.getKey())){
int tqdkfzs = DateUtil.getBetWeenMinutes(Utils.getkssjTime(scheduleMap,analysisDate),Utils.getkssjTime(afterScheduleMap,analysisDate))+Integer.valueOf(afterScheduleMap.get("tqdkfzs").toString()); int tqdkfzs = DateUtil.getBetWeenMinutes(Utils.getkssjTime(scheduleMap,analysisDate),Utils.getkssjTime(afterScheduleMap,analysisDate))+Integer.valueOf(afterScheduleMap.get("tqdkfzs")==null?"60":afterScheduleMap.get("tqdkfzs").toString());
afterScheduleMap.put("tqdkfzs",tqdkfzs); afterScheduleMap.put("tqdkfzs",tqdkfzs);
} }
} }
@ -760,15 +760,17 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
//重新获取最早上班时间 //重新获取最早上班时间
Map<ClockPointEnum, Map<String, Object>> startNearestClcokInTime = Utils.getNearestClcokInTimeCmd(DateUtil.beforeMinutes(clockdto.getClassTime(),zddxfz), clockInTimeList); Map<ClockPointEnum, Map<String, Object>> startNearestClcokInTime = Utils.getNearestClcokInTimeCmd(DateUtil.beforeMinutes(clockdto.getClassTime(),zddxfz), clockInTimeList);
ClockPointEnum timeType = getStartClassTimeType(ksdkMap,startNearestClcokInTime,kssjStart,DateUtil.beforeMinutes(kssjStart,zddxfz)); ClockPointEnum timeType = getStartClassTimeType(ksdkMap,startNearestClcokInTime,kssjStart,DateUtil.beforeMinutes(kssjStart,zddxfz));
clockdto.setTimeType(timeType); // clockdto.setTimeType(timeType);
clockdto.setClockTime(startNearestClcokInTime.get(timeType)); // clockdto.setClockTime(startNearestClcokInTime.get(timeType));
Map<String, Object> clcokInTime = clockdto.getClockTime(); Map<String, Object> clcokInTime = startNearestClcokInTime.get(timeType);
if (pointTime.equals(kssjStart) && ClockPointEnum.START.equals(pointType) && clcokInTime != null if (pointTime.equals(kssjStart) && ClockPointEnum.START.equals(pointType) && clcokInTime != null
&& CheckBoxEnum.CHECKED.getKey().equals(ifToWorkClock)) { && CheckBoxEnum.CHECKED.getKey().equals(ifToWorkClock)) {
//该卡点是弹性开始时间 //该卡点是弹性开始时间
//弹性上班期间未被请假开始时间占据 //弹性上班期间未被请假开始时间占据
clockdto.setTimeType(timeType);
clockdto.setClockTime(startNearestClcokInTime.get(timeType));
if ("".equals(flexibleWorkTime) ){ if ("".equals(flexibleWorkTime) ){
String signTime = clcokInTime.get("signdate") + " " + clcokInTime.get("signtime"); String signTime = clcokInTime.get("signdate") + " " + clcokInTime.get("signtime");
if (ClockPointEnum.BEFORE.equals(timeType)) { if (ClockPointEnum.BEFORE.equals(timeType)) {
@ -803,6 +805,8 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
needClockDateList.add(startWorkIndex,clockdto.getElasticTime()); needClockDateList.add(startWorkIndex,clockdto.getElasticTime());
} else if (pointTime.equals(jssjEnd) && ClockPointEnum.END.equals(pointType) && CheckBoxEnum.CHECKED.getKey().equals(ifToCloseClock)) { } else if (pointTime.equals(jssjEnd) && ClockPointEnum.END.equals(pointType) && CheckBoxEnum.CHECKED.getKey().equals(ifToCloseClock)) {
//该卡点是弹性下班点 //该卡点是弹性下班点
clockdto.setTimeType(timeType);
clockdto.setClockTime(startNearestClcokInTime.get(timeType));
if ("".equals(flexibleOffWorkTime) && !"".equals(flexibleWorkTime)){ if ("".equals(flexibleOffWorkTime) && !"".equals(flexibleWorkTime)){
int betweenToWorkTime = DateUtil.getBetWeenMinutes(flexibleWorkTime, kssjStart); int betweenToWorkTime = DateUtil.getBetWeenMinutes(flexibleWorkTime, kssjStart);
//弹性下班时间点 //弹性下班时间点

@ -323,7 +323,7 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
String str1 = o1.get("resourceId").toString(); String str1 = o1.get("resourceId").toString();
String str2 = o2.get("resourceId").toString(); String str2 = o2.get("resourceId").toString();
//str1在前str2在后默认升序 //str1在前str2在后默认升序
return str1.compareTo(str2); return Integer.valueOf(str1)-Integer.valueOf(str2);
} }
}); });
@ -485,9 +485,9 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
String kqxmSql = "select * from uf_jcl_kq_kqxm"; String kqxmSql = "select * from uf_jcl_kq_kqxm";
List<Map<String, Object>> kqxmList = DbTools.getSqlToList(kqxmSql); List<Map<String, Object>> kqxmList = DbTools.getSqlToList(kqxmSql);
//收集视图列头 //收集视图列头
StringBuilder viewColumn = new StringBuilder("id,ygid,rq,fbid,bm,zw,bc"); StringBuilder viewColumn = new StringBuilder("id,ygid,rq,fbid,bm,zw,bc,rqlx");
//拼接视图内容sql //拼接视图内容sql
StringBuilder viewResourceSql = new StringBuilder("SELECT id, ygid, rq, fbid, bm, zw, bc"); StringBuilder viewResourceSql = new StringBuilder("SELECT id, ygid, rq, fbid, bm, zw, bc, rqlx");
//考勤项目核算单位、id、名称 //考勤项目核算单位、id、名称
//20241031需求变更字段“助记码”代替“名称” //20241031需求变更字段“助记码”代替“名称”
String hsdw = ""; String hsdw = "";
@ -539,31 +539,31 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS
String createViewSql = "CREATE VIEW " + viewName; String createViewSql = "CREATE VIEW " + viewName;
createViewSql = createViewSql + " AS " + viewResourceSql.toString(); createViewSql = createViewSql + " AS " + viewResourceSql.toString();
createViewSql = createViewSql + " FROM (" + createViewSql = createViewSql + " FROM (" +
"SELECT id, fbid, bm, zw, ygid, rq, bc, xm1 AS xm," + ifNullFunction + "(sc1,0) AS sc FROM uf_jcl_kq_cqjg WHERE (xm1 IS NOT NULL) UNION ALL " "SELECT id, fbid, bm, zw, ygid,rqlx, rq, bc, xm1 AS xm," + ifNullFunction + "(sc1,0) AS sc FROM uf_jcl_kq_cqjg WHERE (xm1 IS NOT NULL) UNION ALL "
+ +
"SELECT id, fbid, bm, zw, ygid, rq, bc, xm2," + ifNullFunction + "(sc2,0) FROM uf_jcl_kq_cqjg WHERE (xm2 IS NOT NULL) UNION ALL " "SELECT id, fbid, bm, zw, ygid,rqlx, rq, bc, xm2," + ifNullFunction + "(sc2,0) FROM uf_jcl_kq_cqjg WHERE (xm2 IS NOT NULL) UNION ALL "
+ +
"SELECT id, fbid, bm, zw, ygid, rq, bc, xm3," + ifNullFunction + "(sc3,0) FROM uf_jcl_kq_cqjg WHERE (xm3 IS NOT NULL) UNION ALL " "SELECT id, fbid, bm, zw, ygid,rqlx, rq, bc, xm3," + ifNullFunction + "(sc3,0) FROM uf_jcl_kq_cqjg WHERE (xm3 IS NOT NULL) UNION ALL "
+ +
"SELECT id, fbid, bm, zw, ygid, rq, bc, xm4," + ifNullFunction + "(sc4,0) FROM uf_jcl_kq_cqjg WHERE (xm4 IS NOT NULL) UNION ALL " "SELECT id, fbid, bm, zw, ygid,rqlx, rq, bc, xm4," + ifNullFunction + "(sc4,0) FROM uf_jcl_kq_cqjg WHERE (xm4 IS NOT NULL) UNION ALL "
+ +
"SELECT id, fbid, bm, zw, ygid, rq, bc, xm5," + ifNullFunction + "(sc5,0) FROM uf_jcl_kq_cqjg WHERE (xm5 IS NOT NULL) UNION ALL " "SELECT id, fbid, bm, zw, ygid,rqlx, rq, bc, xm5," + ifNullFunction + "(sc5,0) FROM uf_jcl_kq_cqjg WHERE (xm5 IS NOT NULL) UNION ALL "
+ +
"SELECT id, fbid, bm, zw, ygid, rq, bc, xm6," + ifNullFunction + "(sc6,0) FROM uf_jcl_kq_cqjg WHERE (xm6 IS NOT NULL) UNION ALL " "SELECT id, fbid, bm, zw, ygid,rqlx, rq, bc, xm6," + ifNullFunction + "(sc6,0) FROM uf_jcl_kq_cqjg WHERE (xm6 IS NOT NULL) UNION ALL "
+ +
"SELECT id, fbid, bm, zw, ygid, rq, bc, xm7," + ifNullFunction + "(sc7,0) FROM uf_jcl_kq_cqjg WHERE (xm7 IS NOT NULL) UNION ALL " "SELECT id, fbid, bm, zw, ygid,rqlx, rq, bc, xm7," + ifNullFunction + "(sc7,0) FROM uf_jcl_kq_cqjg WHERE (xm7 IS NOT NULL) UNION ALL "
+ +
"SELECT id, fbid, bm, zw, ygid, rq, bc, xm8," + ifNullFunction + "(sc8,0) FROM uf_jcl_kq_cqjg WHERE (xm8 IS NOT NULL) UNION ALL " "SELECT id, fbid, bm, zw, ygid,rqlx, rq, bc, xm8," + ifNullFunction + "(sc8,0) FROM uf_jcl_kq_cqjg WHERE (xm8 IS NOT NULL) UNION ALL "
+ +
"SELECT id, fbid, bm, zw, ygid, rq, bc, CASE WHEN cqzt = 0 THEN '1' ELSE '5' END, cqsc FROM uf_jcl_kq_cqjg UNION ALL " "SELECT id, fbid, bm, zw, ygid,rqlx, rq, bc, CASE WHEN cqzt = 0 THEN '1' ELSE '5' END, cqsc FROM uf_jcl_kq_cqjg UNION ALL "
+ +
"SELECT id, fbid, bm, zw, ygid, rq, bc, CASE WHEN rqlx = 0 OR rqlx = 4 THEN '2' WHEN rqlx = 2 OR rqlx = 3 THEN '3' WHEN rqlx = 1 THEN '4' ELSE '0' END ,cqsc FROM uf_jcl_kq_cqjg UNION ALL " "SELECT id, fbid, bm, zw, ygid,rqlx, rq, bc, CASE WHEN rqlx = 0 OR rqlx = 4 THEN '2' WHEN rqlx = 2 OR rqlx = 3 THEN '3' WHEN rqlx = 1 THEN '4' ELSE '0' END ,cqsc FROM uf_jcl_kq_cqjg UNION ALL "
+ +
"SELECT T2.id, T2.fbid, T2.bm, T2.zw, T2.ygid, T2.rq, T2.bc, T1.jtlx, " + ifNullFunction + "(T1.sc,0) FROM uf_jcl_kq_cqjt T1 LEFT JOIN uf_jcl_kq_cqjg T2 ON T1.yg = T2.ygid AND T1.rq = T2.rq WHERE T1.zt = 1 UNION ALL " "SELECT T2.id, T2.fbid, T2.bm, T2.zw, T2.ygid,rqlx, T2.rq, T2.bc, T1.jtlx, " + ifNullFunction + "(T1.sc,0) FROM uf_jcl_kq_cqjt T1 LEFT JOIN uf_jcl_kq_cqjg T2 ON T1.yg = T2.ygid AND T1.rq = T2.rq WHERE T1.zt = 1 UNION ALL "
+ +
"SELECT T2.id, T2.fbid, T2.bm, T2.zw, T2.ygid, T2.rq, T2.bc, T1.bdklx, 1 FROM uf_jcl_kq_bdkjl T1 LEFT JOIN uf_jcl_kq_cqjg T2 ON T1.bdkry = T2.ygid AND T1.dkrq = T2.rq WHERE T1.jlzt = 1 AND T2.id IS NOT NULL " "SELECT T2.id, T2.fbid, T2.bm, T2.zw, T2.ygid,rqlx, T2.rq, T2.bc, T1.bdklx, 1 FROM uf_jcl_kq_bdkjl T1 LEFT JOIN uf_jcl_kq_cqjg T2 ON T1.bdkry = T2.ygid AND T1.dkrq = T2.rq WHERE T1.jlzt = 1 AND T2.id IS NOT NULL "
+ +
") ta GROUP BY id, ygid, rq, fbid, bm, zw, bc"; ") ta GROUP BY id, ygid,rqlx, rq, fbid, bm, zw, bc";
boolean createSign = DbTools.update(createViewSql); boolean createSign = DbTools.update(createViewSql);
bs.writeLog("创建视图结果:" + createSign); bs.writeLog("创建视图结果:" + createSign);

@ -80,8 +80,8 @@ public class ShiftServiceImpl extends Service implements ShiftService {
} }
//1-比较各候选班次实际打卡正常的时间点个数B //1-比较各候选班次实际打卡正常的时间点个数B
String resultB = Util.null2String(result.get("judgePartB")); String resultB = Util.null2String(result.get("judgePartB"));
if (resultB.compareTo(compareB) != 0) { if (!resultB.equals(compareB)) {
result = resultB.compareTo(compareB) < 0 ? compareMap : result; result = Double.valueOf(resultB) < Double.valueOf(compareB) ? compareMap : result;
continue; continue;
} }
//2-B相同时,比较B/A最大。各候选班次结合了请假、出差、加班等需要打卡的时间点个数A //2-B相同时,比较B/A最大。各候选班次结合了请假、出差、加班等需要打卡的时间点个数A
@ -96,22 +96,22 @@ public class ShiftServiceImpl extends Service implements ShiftService {
//3-B/A相同时C最小。异常总分钟数C //3-B/A相同时C最小。异常总分钟数C
String resultC = Util.null2String(result.get("judgePartC")); String resultC = Util.null2String(result.get("judgePartC"));
String compareC = Util.null2String(compareMap.get("judgePartC")); String compareC = Util.null2String(compareMap.get("judgePartC"));
if (resultC.compareTo(compareC) != 0) { if (!resultC.equals(compareC)) {
result = resultC.compareTo(compareC) > 0 ? compareMap : result; result = Double.valueOf(resultC)>Double.valueOf(compareC) ? compareMap : result;
continue; continue;
} }
//4-C相同时D最小,冗余总分钟数D //4-C相同时D最小,冗余总分钟数D
String resultD = Util.null2String(result.get("judgePartD")); String resultD = Util.null2String(result.get("judgePartD"));
String compareD = Util.null2String(compareMap.get("judgePartD")); String compareD = Util.null2String(compareMap.get("judgePartD"));
if (resultD.compareTo(compareD) != 0) { if (!resultD.equals(compareD)) {
result = resultD.compareTo(compareD) > 0 ? compareMap : result; result = Double.valueOf(resultD)>Double.valueOf(compareD) ? compareMap : result;
continue; continue;
} }
//5-D相同时E最小,班次优先级E候选班组上有各班次的优先级设置 //5-D相同时E最小,班次优先级E候选班组上有各班次的优先级设置
String resultE = Util.null2String(result.get("judgePartE")); String resultE = Util.null2String(result.get("judgePartE"));
String compareE = Util.null2String(compareMap.get("judgePartE")); String compareE = Util.null2String(compareMap.get("judgePartE"));
if (resultE.compareTo(compareE) != 0) { if (!resultE.equals(compareE)) {
result = resultE.compareTo(compareE) > 0 ? compareMap : result; result = Double.valueOf(resultE)>Double.valueOf(compareE) ? compareMap : result;
} }
} }
//全天没有打卡时,看上一个工作日的班次为优先,如果前一个工作日也没有班次,按优先级 //全天没有打卡时,看上一个工作日的班次为优先,如果前一个工作日也没有班次,按优先级

@ -47,11 +47,11 @@ public class AttendanceanalysisAction {
public String getSchedulingData(@Context HttpServletRequest request, @Context HttpServletResponse response) { public String getSchedulingData(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try { try {
log.info("********AttendanceanalysisAction start********"); log.info("********AttendanceanalysisAction start********");
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-12-08"); // paramMap.put("startDate","2024-12-10");
// paramMap.put("endDate","2024-12-08"); // paramMap.put("endDate","2024-12-10");
// paramMap.put("userIds","25"); // paramMap.put("userIds","84");
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);
@ -143,6 +143,9 @@ public class AttendanceanalysisAction {
String companystartDate = Util.null2String(userMap.get("companystartdate")); String companystartDate = Util.null2String(userMap.get("companystartdate"));
//离职日期 //离职日期
String terminationDate = Util.null2String(departEmployeeMap.get(userId)); String terminationDate = Util.null2String(departEmployeeMap.get(userId));
if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(companystartDate)) <=0){
terminationDate="";
}
log.info("***********analysis userId:{},anyslsSize:{},allsize:{} start***********", userId,anyslsSize,userList.size()); log.info("***********analysis userId:{},anyslsSize:{},allsize:{} start***********", userId,anyslsSize,userList.size());
//出勤结果,进出时间 //出勤结果,进出时间
@ -258,6 +261,10 @@ public class AttendanceanalysisAction {
String companystartDate = Util.null2String(userGroupMap.get(userId).get(0).get("companystartdate")); String companystartDate = Util.null2String(userGroupMap.get(userId).get(0).get("companystartdate"));
//离职日期 //离职日期
String terminationDate = Util.null2String(departEmployeeMap.get(userId)); String terminationDate = Util.null2String(departEmployeeMap.get(userId));
if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(companystartDate)) <=0){
terminationDate="";
}
//出勤结果,进出时间 //出勤结果,进出时间
Map<String,Map<String,Object>> clockInTimeMap = Maps.newHashMap(); Map<String,Map<String,Object>> clockInTimeMap = Maps.newHashMap();
@ -300,7 +307,7 @@ public class AttendanceanalysisAction {
log.info("***********analysis userId:{} date: {} error ***********", userId,date); log.info("***********analysis userId:{} date: {} error ***********", userId,date);
log.error("execute fail,catch error: [{}]",e); log.error("execute fail,catch error: [{}]",e);
if (userIds.split(",").length ==1 && startDate.equals(endDate)){ if (userIds.split(",").length ==1 && startDate.equals(endDate)){
throw new AttendanceRunTimeException("analysis error "); throw new AttendanceRunTimeException(e);
} }
} }
} }
@ -314,7 +321,7 @@ public class AttendanceanalysisAction {
log.info("***********analysis userId:{} date: {} error ***********", userId,date); log.info("***********analysis userId:{} date: {} error ***********", userId,date);
log.error("execute fail,catch error: [{}]",e); log.error("execute fail,catch error: [{}]",e);
if (userIds.split(",").length ==1 && startDate.equals(endDate)){ if (userIds.split(",").length ==1 && startDate.equals(endDate)){
throw new AttendanceRunTimeException("analysis error "); throw new AttendanceRunTimeException(e);
} }
} }
} }

@ -25,6 +25,11 @@ public class HolidayGenerationJob extends BaseCronJob {
* *
*/ */
private String executeDate; private String executeDate;
/**
*
*/
private String scopeid;
@Override @Override
public void execute() { public void execute() {
log.info("**********HolidayGenerationJob start ************"); log.info("**********HolidayGenerationJob start ************");

@ -252,13 +252,14 @@ public class BySchedulePaymentWay implements HolidayGenerationWay{
endYear = beginYear+1; endYear = beginYear+1;
//分割日期 //分割日期
int month = DateUtil.getBetWeenMonths(qsrq,sxrq); // int month = DateUtil.getBetWeenMonths(qsrq,sxrq);
if (month < 0){ // if (month < 0){
month = 0; // month = 0;
} // }
int historySeniority = seniority-month; // int historySeniority = seniority-month;
divideTime = DateUtil.beforeMonth(qsrq,historySeniority); // divideTime = DateUtil.beforeMonth(qsrq,historySeniority);
divideTime = sxrq.split("-")[0]+"-"+divideTime.split("-")[1]+"-"+divideTime.split("-")[2]; divideTime = sxrq.split("-")[0]+"-"+qsrq.split("-")[1]+"-"+qsrq.split("-")[2];
divideTime = DateUtil.nextMonth(divideTime,1,DateUtil.yyyyMM)+"-01";
} }
Map<String,Object> beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd,userId); Map<String,Object> beginYearmap = VocationCommonUtil.getVocationMap(vocationList, beginYear, yjzd,userId);

@ -647,6 +647,9 @@ public class VocationCommonUtil {
double ktsc = Double.valueOf(Util.null2String(insertHoliDayParam.get("ktsc"))); double ktsc = Double.valueOf(Util.null2String(insertHoliDayParam.get("ktsc")));
String startDate = sxrq; String startDate = sxrq;
String endtDate = jzrq; String endtDate = jzrq;
if (!"".equals(jzrqzd) && !"".equals(companystartdate) && DateUtil.getTime(jzrqzd).compareTo(DateUtil.getTime(companystartdate)) <=0){
jzrqzd="";
}
if (!"".equals(companystartdate) && DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(sxrq)) >=0 && if (!"".equals(companystartdate) && DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(sxrq)) >=0 &&
DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(jzrq)) <=0){ DateUtil.getTime(companystartdate).compareTo(DateUtil.getTime(jzrq)) <=0){
startDate = companystartdate; startDate = companystartdate;

@ -157,7 +157,7 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
//假期余额使用规则0-假别优先1-失效日期优先默认0 //假期余额使用规则0-假别优先1-失效日期优先默认0
String jqyeUsePriority = Util.null2String(mainTableData.get("yesygz")); String jqyeUsePriority = Util.null2String(mainTableData.get("yesygz"));
if ("".equals(jqyeUsePriority)) { if ("".equals(jqyeUsePriority)) {
jqyeUsePriority = "0"; jqyeUsePriority = "1";
} }
//获取请假日期集合 //获取请假日期集合
List<String> leaveDateList = DateUtil.getDatesBetween(startDate, endDate); List<String> leaveDateList = DateUtil.getDatesBetween(startDate, endDate);
@ -289,7 +289,7 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
} }
if (canUseJqyeList.size() > 0) { if (canUseJqyeList.size() > 0) {
//按照延期失效日期早+级联优先级高(优先数字小)规则排序 //按照延期失效日期早+级联优先级高(优先数字小)规则排序
canUseJqyeList.sort(Comparator.comparing((Map<String, Object> h) -> (String) h.get("yqsxrq")) canUseJqyeList.sort(Comparator.comparing((Map<String, Object> h) -> (String) h.get("yqsxrq")).thenComparing(h->h.get("sxrq").toString())
.thenComparing(h -> (Integer) h.get("jbPriorityValue"))); .thenComparing(h -> (Integer) h.get("jbPriorityValue")));
} }
@ -1816,7 +1816,7 @@ public class AskForLeaveServiceImpl extends Service implements AskForLeaveServic
String startDate, String leaveEmpId, String empName, String modeId, List<String> errorMessage, int jbPriorityValue) { String startDate, String leaveEmpId, String empName, String modeId, List<String> errorMessage, int jbPriorityValue) {
String itemId = Util.null2String(holidayItem.get("id")); String itemId = Util.null2String(holidayItem.get("id"));
String sql = "select id,jqid,sxrq,ktsc,yxsc,wxsc,yqsxrq,ztsc from uf_jcl_kq_jqye where ygid=? and jqid=? and sxrq<=? and yqsxrq>=? order by yqsxrq, modedatacreatedate, modedatacreatetime"; String sql = "select id,jqid,sxrq,ktsc,yxsc,wxsc,yqsxrq,ztsc from uf_jcl_kq_jqye where ygid=? and jqid=? and sxrq<=? and yqsxrq>=? order by yqsxrq, sxrq";
List<Map<String, Object>> holidayBalanceList = DbTools.getSqlToList(sql, leaveEmpId, itemId, startDate, startDate); List<Map<String, Object>> holidayBalanceList = DbTools.getSqlToList(sql, leaveEmpId, itemId, startDate, startDate);
//获取延期失效日期最晚的一条 //获取延期失效日期最晚的一条
Map<String, Object> maxYqsxrqMap = holidayBalanceList.stream().reduce((m1, m2) -> m2).orElse(null); Map<String, Object> maxYqsxrqMap = holidayBalanceList.stream().reduce((m1, m2) -> m2).orElse(null);

@ -113,6 +113,12 @@
WfForm.changeFieldValue(WfForm.convertFieldNameToId("gsrq", "detail_1")+"_"+rowindex, { WfForm.changeFieldValue(WfForm.convertFieldNameToId("gsrq", "detail_1")+"_"+rowindex, {
value: resultData[0].gsrq value: resultData[0].gsrq
}); });
WfForm.changeFieldValue(WfForm.convertFieldNameToId("jblx", "detail_1")+"_"+rowindex, {
value: resultData[0].jblx,
specialobj:[
{id:resultData[0].jblx,name:resultData[0].jblxName}
]
});
} }
}else { }else {
let errorData = res.data.errorInfo; let errorData = res.data.errorInfo;
@ -157,7 +163,7 @@
if (WfForm.getFieldValue(WfForm.convertFieldNameToId("jsrq","detail_1")+"_"+rowIndex) != value){ if (WfForm.getFieldValue(WfForm.convertFieldNameToId("jsrq","detail_1")+"_"+rowIndex) != value){
WfForm.changeFieldValue(WfForm.convertFieldNameToId("jsrq","detail_1")+"_"+rowIndex,{value:value}) WfForm.changeFieldValue(WfForm.convertFieldNameToId("jsrq","detail_1")+"_"+rowIndex,{value:value})
console.log("WfForm.bindDetailFieldChangeEvent--",id,rowIndex,value); console.log("WfForm.bindDetailFieldChangeEvent--",id,rowIndex,value);
// updateDetail(rowIndex); updateDetail(rowIndex);
} }
}); });

Loading…
Cancel
Save