出差支持上午下午

main
liuliang 1 month ago
parent 573d28693d
commit ce3d3321e3

@ -309,13 +309,13 @@ public class GetOvertimeDurationCmd extends AbstractCommonCommand<Map<String, Ob
forComputeEndTime = jssj; forComputeEndTime = jssj;
} }
} }
int askForLeaveTime = removeAskForLeave(scheduleMap,forComputeStartTime, forComputeEndTime int askForLeaveTime = removeAskForLeave(scheduleMap,realityStartTime, realityEndime
, bdlx, askForLeaveList, askForLeaveItems, askForLeaveToOffsetAbnomaly); , bdlx, askForLeaveList, askForLeaveItems, askForLeaveToOffsetAbnomaly);
/** /**
* *
*/ */
int evectionTime = removeEvection(scheduleMap,forComputeStartTime, forComputeEndTime int evectionTime = removeEvection(scheduleMap,realityStartTime, realityEndime
, bdlx, evectionList, evectionItems, evectionToOffsetAbnomaly); , bdlx, evectionList, evectionItems, evectionToOffsetAbnomaly);
/** /**

@ -143,10 +143,10 @@ public class BusinessTripsApplyServiceImpl extends Service implements BusinessTr
//生成出差明细数据 //生成出差明细数据
List<Map<String, String>> simpleDetailList; List<Map<String, String>> simpleDetailList;
if (ccMode.equals(AskAndEvctionWayEnum.TIME_INTERVAL.getKey()) && !"1".equals(dailyRepeat)) { if (ccMode.equals(AskAndEvctionWayEnum.TIME_INTERVAL.getKey()) && !"1".equals(dailyRepeat)) {
simpleDetailList = createDetailListWithNoDaily(ccEmpIdList, ccDateList, removeNonWorkDayRange, scheduleInfoMap, simpleDetailList = createDetailListWithNoDaily(mainTableData,ccEmpIdList, ccDateList, removeNonWorkDayRange, scheduleInfoMap,
restDayInfo, startDate, endDate, startTime, endTime, countBdlxList, hsdw, hsl, ccType, empIdToName, checkItemName, shiftInfoMap, empIdToDateRatedHours); restDayInfo, startDate, endDate, startTime, endTime, countBdlxList, hsdw, hsl, ccType, empIdToName, checkItemName, shiftInfoMap, empIdToDateRatedHours);
} else { } else {
simpleDetailList = createDetailList(ccEmpIdList, ccDateList, removeNonWorkDayRange, scheduleInfoMap, simpleDetailList = createDetailList(mainTableData,ccEmpIdList, ccDateList, removeNonWorkDayRange, scheduleInfoMap,
restDayInfo, ccMode, startTime, endTime, ccDuration, countBdlxList, hsdw, hsl, ccType, empIdToName, checkItemName, shiftInfoMap, empIdToDateRatedHours, cclxIdToHsdw); restDayInfo, ccMode, startTime, endTime, ccDuration, countBdlxList, hsdw, hsl, ccType, empIdToName, checkItemName, shiftInfoMap, empIdToDateRatedHours, cclxIdToHsdw);
} }
@ -614,11 +614,14 @@ public class BusinessTripsApplyServiceImpl extends Service implements BusinessTr
* @param countBdlxList * @param countBdlxList
* @return * @return
*/ */
private List<Map<String, String>> createDetailList(List<String> empIdList, List<String> dateList, boolean removeNonWorkDayRange, Map<String, List<Map<String, Object>>> scheduleInfoMap, private List<Map<String, String>> createDetailList(Map<String, String> mainTableData,List<String> empIdList, List<String> dateList, boolean removeNonWorkDayRange, Map<String, List<Map<String, Object>>> scheduleInfoMap,
Map<String, List<String>> restDayInfo, String mode, String startTime, String endTime, String ccDuration, List<String> countBdlxList, Map<String, List<String>> restDayInfo, String mode, String startTime, String endTime, String ccDuration, List<String> countBdlxList,
String hsdw, double hsl, String ccType, Map<String, String> empIdToName, String checkItemName, Map<String, Map<String, Object>> shiftInfoMap, String hsdw, double hsl, String ccType, Map<String, String> empIdToName, String checkItemName, Map<String, Map<String, Object>> shiftInfoMap,
Map<String, Map<String, Double>> empIdToDateRatedHours, Map<String, String> cclxIdToHsdw) { Map<String, Map<String, Double>> empIdToDateRatedHours, Map<String, String> cclxIdToHsdw) {
List<Map<String, String>> simpleDetailList = new ArrayList<>(); List<Map<String, String>> simpleDetailList = new ArrayList<>();
String halfDayRangeSelect = Util.null2String((String)mainTableData.get("sxwxz"));
String startRange = Util.null2String((String)mainTableData.get("kssd"));
String endRange = Util.null2String((String)mainTableData.get("jssd"));
Map<String, String> simpleDetailItem; Map<String, String> simpleDetailItem;
Map<String, Double> dateToRatedHours; Map<String, Double> dateToRatedHours;
String ccScHours = ""; String ccScHours = "";
@ -656,6 +659,14 @@ public class BusinessTripsApplyServiceImpl extends Service implements BusinessTr
if (mode.equals(AskAndEvctionWayEnum.TIME_INTERVAL.getKey())) { if (mode.equals(AskAndEvctionWayEnum.TIME_INTERVAL.getKey())) {
simpleDetailItem = new HashMap<>(); simpleDetailItem = new HashMap<>();
//组装初步的明细数据 //组装初步的明细数据
if (CheckBoxEnum.CHECKED.getKey().equals(halfDayRangeSelect)){
String startFromBc = this.getTimePointFromBc(ccDate, (Map)shiftInfoMap.get(currentDayBcId), "start", startRange);
String endFromBc = this.getTimePointFromBc(ccDate, (Map)shiftInfoMap.get(currentDayBcId), "end", endRange);
if (!"".equals(startFromBc) && !"".equals(endFromBc)) {
startTime = startFromBc.split(" ")[1];
endTime = endFromBc.split(" ")[1];
}
}
simpleDetailItem.put("ccr", ccEmpId); simpleDetailItem.put("ccr", ccEmpId);
simpleDetailItem.put("cclx", ccType); simpleDetailItem.put("cclx", ccType);
simpleDetailItem.put("ccrName", ccEmpName); simpleDetailItem.put("ccrName", ccEmpName);
@ -793,7 +804,7 @@ public class BusinessTripsApplyServiceImpl extends Service implements BusinessTr
* @param countBdlxList * @param countBdlxList
* @return * @return
*/ */
private List<Map<String, String>> createDetailListWithNoDaily(List<String> empIdList, List<String> dateList, boolean removeNonWorkDayRange, Map<String, List<Map<String, Object>>> scheduleInfoMap, private List<Map<String, String>> createDetailListWithNoDaily(Map<String, String> mainTableData,List<String> empIdList, List<String> dateList, boolean removeNonWorkDayRange, Map<String, List<Map<String, Object>>> scheduleInfoMap,
Map<String, List<String>> restDayInfo, String startDate, String endDate, String startTime, String endTime, List<String> countBdlxList, Map<String, List<String>> restDayInfo, String startDate, String endDate, String startTime, String endTime, List<String> countBdlxList,
String hsdw, double hsl, String ccType, Map<String, String> empIdToName, String checkItemName, Map<String, Map<String, Object>> shiftInfoMap, String hsdw, double hsl, String ccType, Map<String, String> empIdToName, String checkItemName, Map<String, Map<String, Object>> shiftInfoMap,
Map<String, Map<String, Double>> empIdToDateRatedHours) { Map<String, Map<String, Double>> empIdToDateRatedHours) {
@ -804,6 +815,9 @@ public class BusinessTripsApplyServiceImpl extends Service implements BusinessTr
String targetDateBcId = ""; String targetDateBcId = "";
dateList.add(0, DateUtil.beforeDay(startDate,1)); dateList.add(0, DateUtil.beforeDay(startDate,1));
dateList.add(DateUtil.AfterDay(endDate,1)); dateList.add(DateUtil.AfterDay(endDate,1));
String halfDayRangeSelect = Util.null2String((String)mainTableData.get("sxwxz"));
String startRange = Util.null2String((String)mainTableData.get("kssd"));
String endRange = Util.null2String((String)mainTableData.get("jssd"));
Map<String, Double> dateToRatedHours; Map<String, Double> dateToRatedHours;
for (String ccEmpId : empIdList) { for (String ccEmpId : empIdList) {
dateToRatedHours = new HashMap<>(); dateToRatedHours = new HashMap<>();
@ -829,6 +843,16 @@ public class BusinessTripsApplyServiceImpl extends Service implements BusinessTr
restDateList.addAll(restDateListFromSchedule); restDateList.addAll(restDateListFromSchedule);
} }
String ccEmpName = empIdToName.get(ccEmpId); String ccEmpName = empIdToName.get(ccEmpId);
if (CheckBoxEnum.CHECKED.getKey().equals(halfDayRangeSelect)){
String startDayBcId = ((List)restDateList).contains(startDate) ? "" : Util.null2String((String)dateToBcxxMap.get(startDate)).split("-")[0];
String date = ((List)restDateList).contains(endDate) ? "" : Util.null2String((String)dateToBcxxMap.get(endDate)).split("-")[0];
String startFromBc = getTimePointFromBc(startDate, shiftInfoMap.get(startDayBcId), "start", startRange);
String endFromBc = getTimePointFromBc(endDate, (Map)shiftInfoMap.get(date), "end", endRange); if ("".equals(startFromBc) || "".equals(endFromBc)) {
continue;
}
startTime = startFromBc.split(" ")[1];
endTime = endFromBc.split(" ")[1];
}
simpleDetailItem = new HashMap<>(); simpleDetailItem = new HashMap<>();
//组装初步的出差明细数据 //组装初步的出差明细数据
simpleDetailItem.put("ccr", ccEmpId); simpleDetailItem.put("ccr", ccEmpId);
@ -871,4 +895,128 @@ public class BusinessTripsApplyServiceImpl extends Service implements BusinessTr
} }
return simpleDetailList; return simpleDetailList;
} }
private String getTimePointFromBc(String leaveDate, Map<String, Object> shiftInfo, String pointType, String timeRange) {
String sql = "select id, bdlx, gsrq, kssj as dtkssj, jssj as dtjssj, edts, edxss from uf_jcl_kq_bcxx_dt1 where mainid = " + shiftInfo.get("id") + " and (bdlx=0 or bdlx=3) order by gsrq, kssj";
List<Map<String, Object>> bdData = DbTools.getSqlToList(sql);
if (bdData.size() == 0) {
return "";
}
//根据半天规则,处理班段的上下半天数据
String halfDayRuleValue = shiftInfo.get("btgz").toString();
double ratedSc = Double.parseDouble(shiftInfo.get("edsc").toString());
double totalSc = Double.parseDouble(shiftInfo.get("zgzsc").toString());
String wholeBdStartTime = Utils.getkssjTime(bdData.get(0), leaveDate);
String wholeBdEndTime = Utils.getjssjTime(bdData.get(bdData.size() - 1), leaveDate);
String firstHalfEndTime = "";
String secondHalfStartTime = "";
//按班次设置 取固定时间 取总时长一半 取额定时长一半
if (HalfDayRuleREnum.BY_CLASS_SET.getKey().equals(halfDayRuleValue)) {
//按班次设置根据班段明细中的额定天数来推断半天时间段累计额定天数达到0.5天的时间点为上午结束的时间点,之后开始的工作时段的时间点为下午开始的时间点
double countDays = 0;
for (Map<String, Object> bdItem : bdData) {
if (countDays == 0.50) {
secondHalfStartTime = Utils.getkssjTime(bdItem, leaveDate);
break;
}
double itemEdts = Double.parseDouble(bdItem.get("edts").toString());
if (countDays + itemEdts > 0.50) {
double multiple = (0.50 - countDays) / itemEdts;
String itemStartTime = Utils.getkssjTime(bdItem, leaveDate);
String itemEndTime = Utils.getjssjTime(bdItem, leaveDate);
int minutes = (int) (DateUtil.getBetWeenMinutes(itemStartTime, itemEndTime) * multiple);
firstHalfEndTime = DateUtil.AfterMinutes(itemStartTime, minutes);
secondHalfStartTime = firstHalfEndTime;
break;
} else if (countDays + itemEdts == 0.50) {
firstHalfEndTime = Utils.getjssjTime(bdItem, leaveDate);
}
countDays = countDays + itemEdts;
}
} else if (HalfDayRuleREnum.FIXED_DURATION.getKey().equals(halfDayRuleValue)) {
//取固定时间根据“分隔时间点”字段fgsjd来指定上午和下午分割的时间点
String segmentTime = shiftInfo.get("fgsjd").toString();
segmentTime = getSegmentTime(segmentTime, wholeBdStartTime, wholeBdEndTime);
if (segmentTime.equals("")) {
return "";
}
firstHalfEndTime = segmentTime;
secondHalfStartTime = segmentTime;
} else if (HalfDayRuleREnum.HALF_TOTAL_DURATION.getKey().equals(halfDayRuleValue)) {
//取总时长一半,根据工作总时长的一半小时数,来确定半天小时数,累加班段明细的额定时长达到半天小时数的时间点为上午结束时间点
double countHours = 0;
for (Map<String, Object> bdItem : bdData) {
if (countHours == totalSc / 2) {
secondHalfStartTime = Utils.getkssjTime(bdItem, leaveDate);
break;
}
double itemEdxss = Double.parseDouble(bdItem.get("edxss").toString());
if (countHours + itemEdxss > totalSc / 2) {
String itemStartTime = Utils.getkssjTime(bdItem, leaveDate);
int diffMinutes = (int) ((totalSc / 2 - countHours) * 60);
firstHalfEndTime = DateUtil.AfterMinutes(itemStartTime, diffMinutes);
secondHalfStartTime = firstHalfEndTime;
break;
} else if (countHours + itemEdxss == totalSc / 2) {
firstHalfEndTime = Utils.getjssjTime(bdItem, leaveDate);
}
countHours = countHours + itemEdxss;
}
} else if (HalfDayRuleREnum.HALF_RATED_DURATION.getKey().equals(halfDayRuleValue)) {
//取额定时长一半,根据主表额定时长的一半小时数,来确定半天小时数,累加班段明细的额定时长达到半天小时数的时间点为上午结束时间点
double countHours = 0;
for (Map<String, Object> bdItem : bdData) {
if (countHours == ratedSc / 2) {
secondHalfStartTime = Utils.getkssjTime(bdItem, leaveDate);
break;
}
double itemEdxss = Double.parseDouble(bdItem.get("edxss").toString());
if (countHours + itemEdxss > ratedSc / 2) {
String itemStartTime = Utils.getkssjTime(bdItem, leaveDate);
int diffMinutes = (int) ((ratedSc / 2 - countHours) * 60);
firstHalfEndTime = DateUtil.AfterMinutes(itemStartTime, diffMinutes);
secondHalfStartTime = firstHalfEndTime;
break;
} else if (countHours + itemEdxss == ratedSc / 2) {
firstHalfEndTime = Utils.getjssjTime(bdItem, leaveDate);
}
countHours = countHours + itemEdxss;
}
}
if ("0".equals(timeRange)) {
return "start".equals(pointType) ? wholeBdStartTime : firstHalfEndTime;
} else if ("1".equals(timeRange)) {
return "start".equals(pointType) ? secondHalfStartTime : wholeBdEndTime;
} else {
return "";
}
}
private String getSegmentTime(String segmentTime, String wholeBdStartTime, String wholeBdEndTime) {
String startDate = wholeBdStartTime.split(" ")[0];
String endDate = wholeBdEndTime.split(" ")[0];
String startPoint = wholeBdStartTime.split(" ")[1];
String endPoint = wholeBdEndTime.split(" ")[1];
if (startDate.equals(endDate)) {
if (segmentTime.compareTo(startPoint) > 0 && segmentTime.compareTo(endPoint) < 0) {
segmentTime = startDate + " " + segmentTime;
return segmentTime;
} else {
return "";
}
}
String waitJudgeSegTime = "";
int waitCompareMinutes = 9999;
for (int i = 0; i < 3; i++) {
String matchSegTime = DateUtil.AfterDay(startDate,i) + " " + segmentTime;
if (matchSegTime.compareTo(wholeBdStartTime) > 0 && matchSegTime.compareTo(wholeBdEndTime) < 0) {
int diffMinutes = Math.abs(DateUtil.getBetWeenMinutes(wholeBdStartTime, matchSegTime) - DateUtil.getBetWeenMinutes(matchSegTime, wholeBdEndTime));
waitCompareMinutes = Math.min(waitCompareMinutes, diffMinutes);
waitJudgeSegTime = waitCompareMinutes == diffMinutes ? matchSegTime : waitJudgeSegTime;
}
}
return waitJudgeSegTime;
}
} }

@ -59,6 +59,8 @@ public class CleanHaveLeaveUserDataCmd extends AbstractCommonCommand<Map<String,
DbTools.update(updateSql, user, startDate, beforeCompanystartdateDay); 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 && if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(endDate)) <= 0 &&
DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(startDate)) >= 0) { DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(startDate)) >= 0) {
@ -70,6 +72,8 @@ public class CleanHaveLeaveUserDataCmd extends AbstractCommonCommand<Map<String,
DbTools.update(updateSql, user, AfterDay, endDate); DbTools.update(updateSql, user, AfterDay, endDate);
} }
} }
}else if (!"".equals(terminationDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(startDate))<0 ){
DbTools.update(updateSql,user,startDate,endDate);
} }
} }

@ -0,0 +1,584 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<script>
$('.generateLeaveInfoList').css("background-color","#2db7f5")
$('.generateLeaveInfoList').css("height","35px")
$('.generateLeaveInfoList span').css("line-height","35px")
$('.generateLeaveInfoList').css("border-radius","3px")
$('.generateLeaveInfoList').click(function(){
//允许继续添加行调用callback不调用代表阻断添加
let mainTableData = {
szjg: WfForm.getFieldValue(WfForm.convertFieldNameToId("szjg")),
qjr: WfForm.getFieldValue(WfForm.convertFieldNameToId("qjry")),
jqlx: WfForm.getFieldValue(WfForm.convertFieldNameToId("jqlx")),
jqlx_vals: mobx.toJS(wfform.getFieldValueObj(WfForm.convertFieldNameToId("jqlx")).specialobj),
mtcfsdjq: WfForm.getFieldValue(WfForm.convertFieldNameToId("mtcfsdjq")),
ksrq: WfForm.getFieldValue(WfForm.convertFieldNameToId("ksrq")),
jsrq: WfForm.getFieldValue(WfForm.convertFieldNameToId("jsrq")),
kssj: WfForm.getFieldValue(WfForm.convertFieldNameToId("kssj")),
jssj: WfForm.getFieldValue(WfForm.convertFieldNameToId("jssj")),
cxjqj: WfForm.getFieldValue(WfForm.convertFieldNameToId("cxjqj")),
yesygz: WfForm.getFieldValue(WfForm.convertFieldNameToId("yesygz")),
sxwxz: WfForm.getFieldValue(WfForm.convertFieldNameToId("sxwxz")),
kssd: WfForm.getFieldValue(WfForm.convertFieldNameToId("kssd")),
jssd: WfForm.getFieldValue(WfForm.convertFieldNameToId("jssd")),
qjsc: WfForm.getFieldValue(WfForm.convertFieldNameToId("qjsc")),
bcxx:WfForm.getFieldValue(WfForm.convertFieldNameToId("bcxx"))
}
generateHoliday(mainTableData);
})
function generateHoliday(mainTableData){
let detailTableData=[];
let param = {
mainTableData:JSON.stringify(mainTableData),
detailTableData:JSON.stringify(detailTableData),
}
console.log(param);
WfForm.delDetailRow("detail_3", "all");
$.ajax({
url:'/api/attendance/askforleave/generateLeaveInfoList',
data:param,
type:'GET',
dataType:'json',
async:false,
success:function(res){
debugger;
if(res.api_status){
if(res.data.status){
WfForm.delDetailRow("detail_1", "all");
let resultData = res.data.data;
resultData.filter(item => {
let qjsc = Number(item.qjsc);
if (qjsc%2>0){
qjsc = qjsc-(qjsc%2)+2;
item.qjsc = qjsc
}
let addObj = {}
addObj[WfForm.convertFieldNameToId("qjr", "detail_1")] = {value:item.qjr,specialobj:[{id:item.qjr,name:item.qjrName}]};
addObj[WfForm.convertFieldNameToId("qjlx", "detail_1")] = {value:item.qjlx,specialobj:[{id:item.qjlx,name:item.qjlxName}]};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")]={value:item.ksrq}
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")]={value:item.kssj}
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")]={value:item.jsrq}
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")]={value:item.jssj}
addObj[WfForm.convertFieldNameToId("qjsc", "detail_1")]={value:item.qjsc}
addObj[WfForm.convertFieldNameToId("qtj", "detail_1")]={value:item.qtj}
addObj[WfForm.convertFieldNameToId("btj", "detail_1")]={value:item.btj}
addObj[WfForm.convertFieldNameToId("jqye", "detail_1")]={value:item.jqye==undefined?'':item.jqye}
WfForm.addDetailRow("detail_1", addObj);
if (mainTableData.mtcfsdjq == "0"){
addObj = {};
addObj[WfForm.convertFieldNameToId("yesygz", "detail_3")]={value:mainTableData.yesygz};
addObj[WfForm.convertFieldNameToId("sxwxz", "detail_3")]={value:mainTableData.sxwxz};
addObj[WfForm.convertFieldNameToId("qjfs", "detail_3")]={value:mainTableData.cxjqj};
addObj[WfForm.convertFieldNameToId("qjr", "detail_3")]={value:mainTableData.qjr};
addObj[WfForm.convertFieldNameToId("qjlx", "detail_3")]={value:mainTableData.jqlx,specialobj:mainTableData.jqlx_vals};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_3")]={value:mainTableData.ksrq};
addObj[WfForm.convertFieldNameToId("jsrq", "detail_3")]={value:mainTableData.jsrq}
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")]={value:""};
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")]={value:''};//设置全天假为不勾选
addObj[WfForm.convertFieldNameToId("btj", "detail_3")]={value:''};//设置半天假为不勾选
switch(mainTableData.cxjqj) {
case '0'://全天请假
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")] = {value: '1'};//设置全天假为勾选
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")]={value:""};
addObj[WfForm.convertFieldNameToId("btj", "detail_3")]={value:''};//设置半天假为不勾选
break;
case '1'://按时间区间请假,需要单独设置开始结束时间或者开始结束时段
//按时间区间请假,需要单独设置开始结束时间或者开始结束时段
if (mainTableData.sxwxz == '0') {
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")] = {value: mainTableData.kssj};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")] = {value: mainTableData.jssj};
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")]={value:""};
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")]={value:''};//设置全天假为不勾选
addObj[WfForm.convertFieldNameToId("btj", "detail_3")]={value:''};//设置半天假为不勾选
} else {
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")] = {value: mainTableData.kssd};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")] = {value: mainTableData.jssd};
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")]={value:""};
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")]={value:''};//设置全天假为不勾选
addObj[WfForm.convertFieldNameToId("btj", "detail_3")]={value:''};//设置半天假为不勾选
}
break;
case '2'://半天请假
addObj[WfForm.convertFieldNameToId("btj", "detail_3")] = {value: '1'};//设置半天假为勾选
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")]={value:''};//设置全天假为不勾选
break;
case '3'://按时间长度请假
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")] = {value: mainTableData.qjsc};
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")]={value:''};//设置全天假为不勾选
addObj[WfForm.convertFieldNameToId("btj", "detail_3")]={value:''};//设置半天假为不勾选
break;
default://其他全天或者半天出差
break;
}
WfForm.addDetailRow("detail_3", addObj);
}else{
var v_tmpbdate = new Date(item.ksrq);
var v_tmpedate = new Date(v_tmpbdate);
if (!DateCheck(item.ksrq,item.kssj,item.jsrq,item.jssj)) {
v_tmpedate = v_tmpedate.setDate(v_tmpedate.getDate() + 1);
v_tmpedate = new Date(v_tmpedate);
}
while (v_tmpbdate<=new Date(item.jsrq)){
addObj = {};
addObj[WfForm.convertFieldNameToId("yesygz", "detail_3")]={value:mainTableData.yesygz};
addObj[WfForm.convertFieldNameToId("sxwxz", "detail_3")]={value:mainTableData.sxwxz};
addObj[WfForm.convertFieldNameToId("qjfs", "detail_3")]={value:mainTableData.cxjqj};
addObj[WfForm.convertFieldNameToId("qjr", "detail_3")]={value:mainTableData.qjr};
addObj[WfForm.convertFieldNameToId("qjlx", "detail_3")]={value:mainTableData.jqlx,specialobj:mainTableData.jqlx_vals};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_3")]={value:v_tmpbdate};
addObj[WfForm.convertFieldNameToId("jsrq", "detail_3")]={value:v_tmpedate};
switch(mainTableData.cxjqj) {
case '0'://全天请假
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")] = {value: '1'};//设置全天假为勾选
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")]={value:""};
addObj[WfForm.convertFieldNameToId("btj", "detail_3")]={value:''};//设置半天假为不勾选
break;
case '1'://按时间区间请假,需要单独设置开始结束时间或者开始结束时段
//按时间区间请假,需要单独设置开始结束时间或者开始结束时段
if (mainTableData.sxwxz == '0') {
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")] = {value: mainTableData.kssj};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")] = {value: mainTableData.jssj};
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")]={value:""};
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")]={value:''};//设置全天假为不勾选
addObj[WfForm.convertFieldNameToId("btj", "detail_3")]={value:''};//设置半天假为不勾选
} else {
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")] = {value: mainTableData.kssd};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")] = {value: mainTableData.jssd};
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")]={value:""};
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")]={value:''};//设置全天假为不勾选
addObj[WfForm.convertFieldNameToId("btj", "detail_3")]={value:''};//设置半天假为不勾选
}
break;
case '2'://半天请假
addObj[WfForm.convertFieldNameToId("btj", "detail_3")] = {value: '1'};//设置半天假为勾选
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")]={value:""};
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")]={value:''};//设置全天假为不勾选
break;
case '3'://按时间长度请假
addObj[WfForm.convertFieldNameToId("qjsc", "detail_3")] = {value: mainTableData.qjsc};
addObj[WfForm.convertFieldNameToId("kssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("kssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("jssd", "detail_3")]={value:''};
addObj[WfForm.convertFieldNameToId("qtj", "detail_3")]={value:''};//设置全天假为不勾选
addObj[WfForm.convertFieldNameToId("btj", "detail_3")]={value:''};//设置半天假为不勾选
break;
default://其他全天或者半天出差
break;
}
WfForm.addDetailRow("detail_3", addObj);
v_tmpbdate = v_tmpbdate.setDate(v_tmpbdate.getDate() + 1);
v_tmpbdate = new Date(v_tmpbdate);
//明细结束日期加一天
v_tmpedate = v_tmpedate.setDate(v_tmpedate.getDate() + 1);
v_tmpedate = new Date(v_tmpedate);
}
}
});
}else{
WfForm.showMessage(res.data.errorInfo, 2, 5);
}
}
resetqjfs();
}
})
}
function generateHolidayNoDetail(mainTableData){
let detailTableData=[];
let param = {
mainTableData:JSON.stringify(mainTableData),
detailTableData:JSON.stringify(detailTableData),
}
console.log(param);
$.ajax({
url:'/api/attendance/askforleave/generateLeaveInfoList',
data:param,
type:'GET',
dataType:'json',
async:false,
success:function(res){
debugger;
if(res.api_status){
if(res.data.status){
let resultData = res.data.data;
resultData.filter(item => {
let qjsc = Number(item.qjsc);
if (qjsc%2>0){
qjsc = qjsc-(qjsc%2)+2;
item.qjsc = qjsc
}
let addObj = {}
addObj[WfForm.convertFieldNameToId("qjr", "detail_1")] = {value:item.qjr,specialobj:[{id:item.qjr,name:item.qjrName}]};
addObj[WfForm.convertFieldNameToId("qjlx", "detail_1")] = {value:item.qjlx,specialobj:[{id:item.qjlx,name:item.qjlxName}]};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")]={value:item.ksrq}
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")]={value:item.kssj}
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")]={value:item.jsrq}
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")]={value:item.jssj}
addObj[WfForm.convertFieldNameToId("qjsc", "detail_1")]={value:item.qjsc}
addObj[WfForm.convertFieldNameToId("qtj", "detail_1")]={value:item.qtj}
addObj[WfForm.convertFieldNameToId("btj", "detail_1")]={value:item.btj}
addObj[WfForm.convertFieldNameToId("jqye", "detail_1")]={value:item.jqye==undefined?'':item.jqye}
WfForm.addDetailRow("detail_1", addObj);
});
}else{
WfForm.showMessage(res.data.errorInfo, 2, 5);
}
}
resetqjfs();
}
})
}
//绑定全天假栏位值变更事件
jQuery(document).ready(function(){
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("ksrq", "detail_3"),function(id,rowIndex,value){
generateDetail1()
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("jsrq", "detail_3"),function(id,rowIndex,value){
generateDetail1()
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("kssj", "detail_3"),function(id,rowIndex,value){
generateDetail1()
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("jssj", "detail_3"),function(id,rowIndex,value){
generateDetail1()
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("kssd", "detail_3"),function(id,rowIndex,value){
generateDetail1()
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("jssd", "detail_3"),function(id,rowIndex,value){
generateDetail1()
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("qjsc", "detail_3"),function(id,rowIndex,value){
generateDetail1()
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("qtj", "detail_3"),function(id,rowIndex,value){
if (null2String(WfForm.getFieldValue(WfForm.convertFieldNameToId("btj", "detail_3")+"_"+rowIndex))=="1" && null2String(value) == "1") {
WfForm.changeFieldValue(WfForm.convertFieldNameToId("btj","detail_3")+"_"+rowIndex,{ value: '0' });//重置开始时间
}
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("btj", "detail_3"),function(id,rowIndex,value){
if (null2String(WfForm.getFieldValue(WfForm.convertFieldNameToId("qtj", "detail_3")+"_"+rowIndex))=="1" && null2String(value) == "1") {
WfForm.changeFieldValue(WfForm.convertFieldNameToId("qtj","detail_3")+"_"+rowIndex,{ value: '0' });//重置开始时间
generateDetail1();
}
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("sxwxz", "detail_3"),function(id,rowIndex,value){
if (null2String(value)=="1"){
//按上下午进行请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj","detail_3")+"_"+rowIndex, 1);//结束时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj","detail_3")+"_"+rowIndex, 1);//开始时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssd","detail_3")+"_"+rowIndex, 3);//开始时段
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssd","detail_3")+"_"+rowIndex, 3);//结束时段
}else{
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj","detail_3")+"_"+rowIndex, 3);//结束时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj","detail_3")+"_"+rowIndex, 3);//开始时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssd","detail_3")+"_"+rowIndex, 1);//开始时段
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssd","detail_3")+"_"+rowIndex, 1);//结束时段
}
generateDetail1();
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("qjfs", "detail_3"),function(id,rowIndex,value){
if(rowIndex !== ""){
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("sxwxz","detail_3")+"_"+rowIndex, 1);//按上下午请假功能不开放
WfForm.changeFieldValue(WfForm.convertFieldNameToId("kssj","detail_3")+"_"+rowIndex,{ value: '' });//重置开始时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj","detail_3")+"_"+rowIndex, 1);//开始时间
WfForm.changeFieldValue(WfForm.convertFieldNameToId("jssj","detail_3")+"_"+rowIndex,{ value: '' });//重置结束时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj","detail_3")+"_"+rowIndex, 1);//结束时间
WfForm.changeFieldValue(WfForm.convertFieldNameToId("kssd","detail_3")+"_"+rowIndex,{ value: '' });//清空开始时段内容
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssd","detail_3")+"_"+rowIndex, 1);//开始时段
WfForm.changeFieldValue(WfForm.convertFieldNameToId("jssd","detail_3")+"_"+rowIndex,{ value: '' });//清空结束时段内容
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssd","detail_3")+"_"+rowIndex, 1);//结束时段
switch(value){
case '0'://全天请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc","detail_3")+"_"+rowIndex, 1);//请假时长
WfForm.changeFieldValue(WfForm.convertFieldNameToId("qtj","detail_3")+"_"+rowIndex, {value:"1"});//全天假勾选
WfForm.changeFieldValue(WfForm.convertFieldNameToId("btj","detail_3")+"_"+rowIndex, {value:"0"});//半天假取消勾选
break;
case '1'://指定时间区间请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc","detail_3")+"_"+rowIndex, 1);//请假时长
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("sxwxz","detail_3")+"_"+rowIndex, 2);//按上下午请假功能开放
WfForm.changeFieldValue(WfForm.convertFieldNameToId("qtj","detail_3")+"_"+rowIndex, {value:"0"});//全天假取消勾选
WfForm.changeFieldValue(WfForm.convertFieldNameToId("btj","detail_3")+"_"+rowIndex, {value:"0"});//半天假取消勾选
if (null2String(WfForm.getFieldValue(WfForm.convertFieldNameToId("sxwxz", "detail_3")+"_"+rowIndex))=="1"){
//按上下午进行请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj","detail_3")+"_"+rowIndex, 1);//结束时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj","detail_3")+"_"+rowIndex, 1);//开始时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssd","detail_3")+"_"+rowIndex, 3);//开始时段
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssd","detail_3")+"_"+rowIndex, 3);//结束时段
}else{
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj","detail_3")+"_"+rowIndex, 3);//结束时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj","detail_3")+"_"+rowIndex, 3);//开始时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssd","detail_3")+"_"+rowIndex, 1);//开始时段
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssd","detail_3")+"_"+rowIndex, 1);//结束时段
}
break;
case '2'://半天请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc","detail_3")+"_"+rowIndex, 1);//请假时长
WfForm.changeFieldValue(WfForm.convertFieldNameToId("qtj","detail_3")+"_"+rowIndex, {value:"0"});//全天假勾选
WfForm.changeFieldValue(WfForm.convertFieldNameToId("btj","detail_3")+"_"+rowIndex, {value:"1"});//半天假取消勾选
break;
case '3'://按时间长度请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc","detail_3")+"_"+rowIndex, 3);//请假时长
WfForm.changeFieldValue(WfForm.convertFieldNameToId("qtj","detail_3")+"_"+rowIndex, {value:"0"});//全天假取消勾选
WfForm.changeFieldValue(WfForm.convertFieldNameToId("btj","detail_3")+"_"+rowIndex, {value:"0"});//半天假取消勾选
break;
}
}
generateDetail1();
});
resetqjfs();
});
//请假方式变更时,同样进行页面显示属性的调整
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("cxjqj"),function(obj,id,value){
resetAttr(value);
});
WfForm.registerCheckEvent(WfForm.OPER_SAVE+","+WfForm.OPER_SUBMIT,function(callback){
//清空明细1重新根据明细3生成明细1及明细2
callback();
// let detailNum = WfForm.getDetailRowCount("detail_1")
// if(detailNum > 0){
// callback();
// }else{
// WfForm.showMessage("明细表1没有数据请点击生成请假按钮", 2, 10);
// }
});
WfForm.registerCheckEvent(WfForm.OPER_ADDROW+"3", function(callback){
// WfForm.delDetailRow("detail_1", "all");
callback(); //允许继续添加行调用callback不调用代表阻断添加
});
resetAttr(WfForm.getFieldValue(WfForm.convertFieldNameToId("cxjqj")))
function generateDetail1(){
WfForm.delDetailRow("detail_1", "all");
let detail3Index = WfForm.getDetailAllRowIndexStr("detail_3").split(",");
for(var i=0; i<detail3Index.length; i++){
var rowIndex = detail3Index[i];
if(rowIndex !== ""){
let mainTableData = {
szjg: WfForm.getFieldValue(WfForm.convertFieldNameToId("szjg")),
qjr: WfForm.getFieldValue(WfForm.convertFieldNameToId("qjry")),
jqlx: WfForm.getFieldValue(WfForm.convertFieldNameToId("jqlx")),
jqlx_vals: mobx.toJS(wfform.getFieldValueObj(WfForm.convertFieldNameToId("jqlx")).specialobj),
mtcfsdjq: WfForm.getFieldValue(WfForm.convertFieldNameToId("mtcfsdjq")),
ksrq: WfForm.getFieldValue(WfForm.convertFieldNameToId("ksrq", "detail_3")+"_"+rowIndex),
jsrq: WfForm.getFieldValue(WfForm.convertFieldNameToId("jsrq", "detail_3")+"_"+rowIndex),
kssj: WfForm.getFieldValue(WfForm.convertFieldNameToId("kssj", "detail_3")+"_"+rowIndex),
jssj: WfForm.getFieldValue(WfForm.convertFieldNameToId("jssj", "detail_3")+"_"+rowIndex),
cxjqj: WfForm.getFieldValue(WfForm.convertFieldNameToId("qjfs", "detail_3")+"_"+rowIndex),
yesygz: WfForm.getFieldValue(WfForm.convertFieldNameToId("yesygz", "detail_3")+"_"+rowIndex),
sxwxz: WfForm.getFieldValue(WfForm.convertFieldNameToId("sxwxz", "detail_3")+"_"+rowIndex),
kssd: WfForm.getFieldValue(WfForm.convertFieldNameToId("kssd", "detail_3")+"_"+rowIndex),
jssd: WfForm.getFieldValue(WfForm.convertFieldNameToId("jssd", "detail_3")+"_"+rowIndex),
qjsc: WfForm.getFieldValue(WfForm.convertFieldNameToId("qjsc", "detail_3")+"_"+rowIndex),
}
generateHolidayNoDetail(mainTableData);
}
}
}
function resetqjfs(){
let detail3Index = WfForm.getDetailAllRowIndexStr("detail_3").split(",");
for(var i=0; i<detail3Index.length; i++){
var rowIndex = detail3Index[i];
if(rowIndex !== ""){
let qjfs = WfForm.getFieldValue(WfForm.convertFieldNameToId("qjfs", "detail_3")+"_"+rowIndex);
switch(qjfs){
case '0'://全天请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc","detail_3")+"_"+rowIndex, 1);//请假时长
WfForm.changeFieldValue(WfForm.convertFieldNameToId("qtj","detail_3")+"_"+rowIndex, {value:"1"});//全天假勾选
WfForm.changeFieldValue(WfForm.convertFieldNameToId("btj","detail_3")+"_"+rowIndex, {value:"0"});//半天假取消勾选
break;
case '1'://指定时间区间请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc","detail_3")+"_"+rowIndex, 1);//请假时长
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("sxwxz","detail_3")+"_"+rowIndex, 2);//按上下午请假功能开放
WfForm.changeFieldValue(WfForm.convertFieldNameToId("qtj","detail_3")+"_"+rowIndex, {value:"0"});//全天假取消勾选
WfForm.changeFieldValue(WfForm.convertFieldNameToId("btj","detail_3")+"_"+rowIndex, {value:"0"});//半天假取消勾选
if (null2String(WfForm.getFieldValue(WfForm.convertFieldNameToId("sxwxz", "detail_3")+"_"+rowIndex))=="1"){
//按上下午进行请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj","detail_3")+"_"+rowIndex, 1);//结束时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj","detail_3")+"_"+rowIndex, 1);//开始时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssd","detail_3")+"_"+rowIndex, 3);//开始时段
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssd","detail_3")+"_"+rowIndex, 3);//结束时段
}else{
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj","detail_3")+"_"+rowIndex, 3);//结束时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj","detail_3")+"_"+rowIndex, 3);//开始时间
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssd","detail_3")+"_"+rowIndex, 1);//开始时段
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssd","detail_3")+"_"+rowIndex, 1);//结束时段
}
break;
case '2'://半天请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc","detail_3")+"_"+rowIndex, 1);//请假时长
WfForm.changeFieldValue(WfForm.convertFieldNameToId("qtj","detail_3")+"_"+rowIndex, {value:"0"});//全天假勾选
WfForm.changeFieldValue(WfForm.convertFieldNameToId("btj","detail_3")+"_"+rowIndex, {value:"1"});//半天假取消勾选
break;
case '3'://按时间长度请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc","detail_3")+"_"+rowIndex, 3);//请假时长
WfForm.changeFieldValue(WfForm.convertFieldNameToId("qtj","detail_3")+"_"+rowIndex, {value:"0"});//全天假取消勾选
WfForm.changeFieldValue(WfForm.convertFieldNameToId("btj","detail_3")+"_"+rowIndex, {value:"0"});//半天假取消勾选
break;
}
}
}
}
/**
*
* @param pleavetype 请假方式0全天请假1按时间区间请假2半天3按时间长度请假
*/
function resetAttr(pleavetype) {
//alert('resetAttr');
switch (pleavetype){
case '1'://按时间区间请假
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc"), 4);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("scdw"), 4);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj"), 3);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj"), 3);
break;
case '3'://按时间区间请假
WfForm.changeFieldValue(WfForm.convertFieldNameToId("scdw"),{ value: '1' });//请假时长单位为小时
//请假时间长度可编辑
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc"), 3);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("scdw"), 1);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj"), 5);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj"), 5);
//每天请假时长默认为1小时
WfForm.changeFieldValue(WfForm.convertFieldNameToId("qjsc"),{ value: '1' });
break;
default:
//请假时间长度不可编辑
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("qjsc"), 4);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("scdw"), 4);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj"), 5);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj"), 5);
break;
}
}
function null2String(s){
if(!s){
return "";
}
return s;
}
function DateCheck(fromDate,fromTime,toDate,toTime,msg){
var begin = new Date(fromDate.replace(/\-/g, "\/"));
var end = new Date(toDate.replace(/\-/g, "\/"));
if(fromTime != "" && toTime != ""){
begin = new Date(fromDate.replace(/\-/g, "\/")+" "+fromTime+":00");
end = new Date(toDate.replace(/\-/g, "\/")+" "+toTime+":00");
if(fromDate!=""&&toDate!=""&&begin >end)
{
if(isMobile){
alert(msg);
}else{
WfForm.showMessage(msg);
}
return false;
}
}else{
if(fromDate!=""&&toDate!=""&&begin >end)
{
if(isMobile){
alert(msg);
}else{
WfForm.showMessage(msg);
}
return false;
}
}
return true;
}
</script>

@ -6,41 +6,102 @@
<script> <script>
//补打卡人变更 获取补打卡日期 //补打卡人变更 获取补打卡日期
jQuery(document).ready(function(){ // jQuery(document).ready(function(){
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("bdkr", "detail_1"),function(id,rowIndex,value){ // WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("bdkr", "detail_1"),function(id,rowIndex,value){
WfForm.getFieldValue(WfForm.convertFieldNameToId("bdkrq", "detail_1")+"_"+rowIndex) // WfForm.getFieldValue(WfForm.convertFieldNameToId("bdkrq", "detail_1")+"_"+rowIndex)
//alert(WfForm.getFieldValue(WfForm.convertFieldNameToId("bdkrq", "detail_1")+"_"+rowIndex)); // //alert(WfForm.getFieldValue(WfForm.convertFieldNameToId("bdkrq", "detail_1")+"_"+rowIndex));
}); // });
}); // });
//补打卡日期变更 获取补打卡人 // //补打卡日期变更 获取补打卡人
jQuery(document).ready(function(){ // jQuery(document).ready(function(){
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("bdkrq", "detail_1"),function(id,rowIndex,value){ // WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("bdkrq", "detail_1"),function(id,rowIndex,value){
WfForm.getFieldValue(WfForm.convertFieldNameToId("bdkr", "detail_1")+"_"+rowIndex) // WfForm.getFieldValue(WfForm.convertFieldNameToId("bdkr", "detail_1")+"_"+rowIndex)
//alert(WfForm.getFieldValue(WfForm.convertFieldNameToId("bdkr", "detail_1")+"_"+rowIndex)); // //alert(WfForm.getFieldValue(WfForm.convertFieldNameToId("bdkr", "detail_1")+"_"+rowIndex));
}); // });
}); // });
//添加行记录后 对部分栏位进行二次调整 //添加行记录后 对部分栏位进行二次调整
WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){ // WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
//取主表的流程提交人为补打卡人 // //取主表的流程提交人为补打卡人
var bdkr= mobx.toJS(wfform.getFieldValueObj(WfForm.convertFieldNameToId("bdkry")).specialobj); // var bdkr= mobx.toJS(wfform.getFieldValueObj(WfForm.convertFieldNameToId("bdkry")).specialobj);
var bdklx;//补打卡类型 // var bdklx;//补打卡类型
var bdkrq;//补打卡日期 // var bdkrq;//补打卡日期
if (WfForm.getDetailRowCount("detail_1") > 1){ // if (WfForm.getDetailRowCount("detail_1") > 1){
//明细超过一行,添加第二行时,取第一行对应的补打卡人 // //明细超过一行,添加第二行时,取第一行对应的补打卡人
bdkr = mobx.toJS(wfform.getFieldValueObj(WfForm.convertFieldNameToId("bdkr","detail_1")+"_"+(index-1)).specialobj); // bdkr = mobx.toJS(wfform.getFieldValueObj(WfForm.convertFieldNameToId("bdkr","detail_1")+"_"+(index-1)).specialobj);
//取上一行的补打卡日期 // //取上一行的补打卡日期
bdkrq = wfform.getFieldValue(WfForm.convertFieldNameToId("bdkrq","detail_1")+"_"+(index-1)); // bdkrq = wfform.getFieldValue(WfForm.convertFieldNameToId("bdkrq","detail_1")+"_"+(index-1));
//新行默认上一行补打卡日期 // //新行默认上一行补打卡日期
WfForm.changeSingleField(WfForm.convertFieldNameToId("bdkrq","detail_1")+"_"+index, {value: bdkrq}); // WfForm.changeSingleField(WfForm.convertFieldNameToId("bdkrq","detail_1")+"_"+index, {value: bdkrq});
//取第一行对应的补打卡类型 // //取第一行对应的补打卡类型
// bdklx = mobx.toJS(wfform.getFieldValueObj(WfForm.convertFieldNameToId("bdklx","detail_1")+"_"+(index-1)).specialobj); // // bdklx = mobx.toJS(wfform.getFieldValueObj(WfForm.convertFieldNameToId("bdklx","detail_1")+"_"+(index-1)).specialobj);
// if (bdklx !== null){ // // if (bdklx !== null){
// //新行默认上一行的补打卡类型 // // //新行默认上一行的补打卡类型
// WfForm.changeSingleField(WfForm.convertFieldNameToId("bdklx","detail_1")+"_"+index, {value:bdklx[0].id,specialobj:[{id:bdklx[0].id,name:bdklx[0].mc}]}); // // WfForm.changeSingleField(WfForm.convertFieldNameToId("bdklx","detail_1")+"_"+index, {value:bdklx[0].id,specialobj:[{id:bdklx[0].id,name:bdklx[0].mc}]});
// } // // }
// }
// WfForm.changeSingleField(WfForm.convertFieldNameToId("bdkr","detail_1")+"_"+index, {value:bdkr[0].id,specialobj:[{id:bdkr[0].id,name:bdkr[0].name}]});
// });
/**
* 自动添加补打卡明细
*/
function adddetail() {
//首先进行必填校验,不通过直接退出
//if(!WfForm.verifyFormRequired(false, true)){ return; }
let mainTableData = {
bdkxm: WfForm.getFieldValue(WfForm.convertFieldNameToId("bdkxm")),
ksrq: WfForm.getFieldValue(WfForm.convertFieldNameToId("ksrq")),
jsrq: WfForm.getFieldValue(WfForm.convertFieldNameToId("jsrq")),
bdkry: WfForm.getFieldValue(WfForm.convertFieldNameToId("bdkry"))
} }
WfForm.changeSingleField(WfForm.convertFieldNameToId("bdkr","detail_1")+"_"+index, {value:bdkr[0].id,specialobj:[{id:bdkr[0].id,name:bdkr[0].name}]});
let param = {
mainTableData:JSON.stringify(mainTableData),
}
console.log(param);
$.ajax({
url:'/api/attendance/makeupclock/generateMakeUpClock',
data:mainTableData,
type:'POST',
dataType:'json',
async:false,
success:function(res){
if(res.code=='200'){
WfForm.delDetailRow("detail_1", "all");
let resultData = res.data.data;
resultData.filter(item => {
let addObj = {};
addObj[WfForm.convertFieldNameToId("bdkr", "detail_1")] = {value:item.bdkry,specialobj:[{id:item.bdkry,name:WfForm.getBrowserShowName(WfForm.convertFieldNameToId('bdkry'))}]};
addObj[WfForm.convertFieldNameToId("bdklx", "detail_1")] = {value:item.bdklx,specialobj:[{id:item.bdklx,name:WfForm.getBrowserShowName(WfForm.convertFieldNameToId('bdkxm'))}]};
addObj[WfForm.convertFieldNameToId("bdksj", "detail_1")]={value:item.bdksj};
addObj[WfForm.convertFieldNameToId("bcbdxx", "detail_1")]={value:item.bdxx};
addObj[WfForm.convertFieldNameToId("bdkrq", "detail_1")]={value:item.bdkrq};
WfForm.addDetailRow("detail_1", addObj);
})
}
}
})
}
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("bdkxm"),function(obj,id,value){
adddetail();
});
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("ksrq"),function(obj,id,value){
adddetail();
});
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("jsrq"),function(obj,id,value){
adddetail();
}); });
</script> </script>

@ -122,6 +122,12 @@
} }
}else { }else {
let errorData = res.data.errorInfo; let errorData = res.data.errorInfo;
WfForm.changeFieldValue(WfForm.convertFieldNameToId("jbsc", "detail_1")+"_"+rowindex, {
value: ''
});
WfForm.changeFieldValue(WfForm.convertFieldNameToId("gsrq", "detail_1")+"_"+rowindex, {
value: WfForm.getFieldValue(WfForm.convertFieldNameToId("ksrq","detail_1")+"_"+rowindex)
});
if (errorData.length >0){ if (errorData.length >0){
WfForm.showMessage(errorData[0], 2, 10); WfForm.showMessage(errorData[0], 2, 10);

Loading…
Cancel
Save