Merge remote-tracking branch 'origin/main'

zm_dev
sy 9 months ago
commit d2b2a22be0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -572,19 +572,30 @@ public class GetClockInPointCmd extends AbstractCommonCommand<Map<String, Object
if (beforeScheduleMap != null){
String beforejssj = Utils.getjssjTime(beforeScheduleMap,analysisDate);
if (DateUtil.getTime(kssj).compareTo(DateUtil.getTime(beforejssj)) == 0 && ifWorkClassSegment(beforeScheduleMap.get("bdlx").toString()) &&
scheduleMap.get("ksdk").equals(CheckBoxEnum.CHECKED.getKey()) && beforeScheduleMap.get("jsdk").equals(CheckBoxEnum.CHECKED.getKey())){
scheduleMap.get("jsdk").equals(CheckBoxEnum.CHECKED.getKey())){
scheduleMap.put("ksdk",CheckBoxEnum.UNCHECKED.getKey());
beforeScheduleMap.put("jsdk",CheckBoxEnum.UNCHECKED.getKey());
}
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.CHECKED.getKey()) &&
beforeScheduleMap.get("jsdk").equals(CheckBoxEnum.CHECKED.getKey())){
scheduleMap.put("ksdk",CheckBoxEnum.UNCHECKED.getKey());
}
}
if (afterScheduleMap != null){
String afterkssj = Utils.getkssjTime(afterScheduleMap,analysisDate);
if (DateUtil.getTime(jssj).compareTo(DateUtil.getTime(afterkssj)) == 0 && ifWorkClassSegment(afterScheduleMap.get("bdlx").toString()) &&
scheduleMap.get("jsdk").equals(CheckBoxEnum.CHECKED.getKey()) && afterScheduleMap.get("ksdk").equals(CheckBoxEnum.CHECKED.getKey())){
scheduleMap.get("ksdk").equals(CheckBoxEnum.CHECKED.getKey())){
scheduleMap.put("jsdk",CheckBoxEnum.UNCHECKED.getKey());
afterScheduleMap.put("ksdk",CheckBoxEnum.UNCHECKED.getKey());
}
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.CHECKED.getKey()) &&
afterScheduleMap.get("ksdk").equals(CheckBoxEnum.CHECKED.getKey())){
scheduleMap.put("jsdk",CheckBoxEnum.UNCHECKED.getKey());
}
}
}
}

@ -48,9 +48,9 @@ public class AttendanceanalysisAction {
try {
Map<String,Object> paramMap = ParamUtil.request2Map(request);
// Map<String,Object> paramMap = Maps.newHashMap();
// paramMap.put("startDate","2024-07-31");
// paramMap.put("endDate","2024-07-31");
// paramMap.put("userIds","81");
// paramMap.put("startDate","2024-07-29");
// paramMap.put("endDate","2024-07-29");
// paramMap.put("userIds","88");
String startDate = Util.null2String(paramMap.get("startDate"));
String startBeforeDate = DateUtil.beforeDay(startDate,2);
@ -234,7 +234,7 @@ public class AttendanceanalysisAction {
Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
//请假记录
sql = "select a.qjry,a.jqlx,a.cxjqj,b.ksrq,b.kssj,b.jsrq,b.jssj,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl a left join uf_jcl_kq_qjjl_dt1 b on a.id = b.mainid where a.qjry in ("+userIds+") and b.ksrq<=? and b.jsrq>=? and (b.cxqj=0 or b.cxqj is null) a.jlzt=1 order by b.ksrq,b.kssj";
sql = "select b.qjry,b.jqlx,b.ksrq,b.kssj,b.jsrq,b.jssj,b.qjsc,b.qtj,b.btj from uf_jcl_kq_qjjl a left join uf_jcl_kq_qjjl_dt1 b on a.id = b.mainid where b.qjry in ("+userIds+") and b.ksrq<=? and b.jsrq>=? and (b.cxqj=0 or b.cxqj is null) and a.jlzt=1";
List<Map<String,Object>> askforLeaveList = DbTools.getSqlToList(sql,DateUtil.AfterDay(endDate,1), DateUtil.beforeDay(startDate,1));
for (Map<String,Object> map :askforLeaveList){
map.put("jqlx_name",itemMap.get(map.get("jqlx")));
@ -242,7 +242,7 @@ public class AttendanceanalysisAction {
Map<String, List<Map<String,Object>>> askforLeavecollect = askforLeaveList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("qjry"))));
//出差记录
sql = "select b.ccr,a.cclx,a.ccsd,b.ksrq,b.jsrq,b.kssj,b.jssj,b.ccsc,b.qtcc,b.btcc,b.cxcc from uf_jcl_kq_ccjl a left join uf_jcl_kq_ccjl_dt1 b on a.id = b.mainid where b.ccr in ("+userIds+") and b.ksrq<=? and b.jsrq>=? and (b.cxcc=0 or b.cxcc is null) a.jlzt=1 order by b.ksrq,b.kssj ";
sql = "select b.ccr,b.cclx,b.ksrq,b.jsrq,b.kssj,b.jssj,b.ccsc,b.qtcc,b.btcc,b.cxcc from uf_jcl_kq_ccjl a left join uf_jcl_kq_ccjl_dt1 b on a.id = b.mainid where b.ccr in ("+userIds+") and b.ksrq<=? and b.jsrq>=? and (b.cxcc=0 or b.cxcc is null) and a.jlzt=1";
List<Map<String,Object>> evectionList = DbTools.getSqlToList(sql,DateUtil.AfterDay(endDate,1), DateUtil.beforeDay(startDate,1));
for (Map<String,Object> map :evectionList){
map.put("cclx_name",itemMap.get(map.get("cclx")));

@ -259,7 +259,7 @@ public class UpdateAttendanceResultWrapper extends Service {
offsetAskForLeaveAnomaly.addAll((List<Map<String,Object>>)handleMap.get("offsetAskForLeaveAnomaly"));
resultMap.put("itemduration",itemduration);
askForLeaveToOffsetAbnomaly.put(askForLeaveList.get(i),(List<Map<String,Object>>)handleMap.get("offsetAskForLeaveAnomaly"));
resultMap.put("item",askForLeaveList.get(i).get("cclx"));
resultMap.put("item",askForLeaveList.get(i).get("jqlx"));
resultList.add(resultMap);
}else if (!"".equals(qjsc) || (CheckBoxEnum.CHECKED.getKey().equals(btj) && (btgz.equals(HalfDayRuleREnum.HALF_TOTAL_DURATION.getKey()) || btgz.equals(HalfDayRuleREnum.HALF_RATED_DURATION.getKey())))){
if (CheckBoxEnum.CHECKED.getKey().equals(btj)){

@ -1,6 +1,7 @@
package TestAttendanceAllowance;
import com.engine.jucailinkq.attendance.attendanceanalysis.dto.clockpoint.ClockPointDTO;
import com.engine.jucailinkq.attendance.attendanceanalysis.job.AttendanceAnalysisJob;
import com.engine.jucailinkq.attendance.attendanceanalysis.web.AttendanceanalysisAction;
import com.engine.jucailinkq.attendance.component.calendarscheduling.service.WorkRulesService;
import com.engine.jucailinkq.attendance.component.calendarscheduling.service.impl.WorkRulesServiceImpl;
@ -36,10 +37,11 @@ Test extends beforlog{
}
@org.junit.Test
public void testjob() throws Exception{
ClockPointDTO startClockPointDTO = new ClockPointDTO();
System.out.println(startClockPointDTO);
public void testAnalysisJob() throws Exception{
AttendanceAnalysisJob job = new AttendanceAnalysisJob();
job.execute();
}
@org.junit.Test
public void testRealse() throws Exception{
Map<String, Object> params = Maps.newHashMap();

@ -1,14 +1,21 @@
package TestAttendanceAllowance;
import com.engine.jucailinkq.attendance.attendanceanalysis.cmd.GetAttendanceCycleCmd;
import com.engine.jucailinkq.common.util.DbTools;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import java.util.List;
import java.util.Map;
public class Test2 {
public class Test2 extends beforlog{
@org.junit.Test
public void testAnalysis() throws Exception{
String str = "11,22,33,44";
List<String> applyClassList = Lists.newArrayList(str.split(","));
System.out.println(applyClassList.contains("13"));
String queryUserSql = "select id,departmentid,subcompanyid1 from hrmresource where status <> '5' and status <> '4' and status <> '7'";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
Map<String,Object> param = Maps.newHashMap();
param.put("userList",userList);
param.put("executeDate","2024-07-31");
new GetAttendanceCycleCmd(param).execute(null);
}
}

@ -88,7 +88,9 @@ public class Test1 extends beforlog {
@Test
public void test4(){
System.out.println("1,2,3,5".contains(""));
double value =Utils.getItemduration(30,AccountingUnitEnum.MINUTES.getKey(),3.1,AccountingUnitEnum.HOUR,0);
System.out.println(value);
}
}

@ -2,7 +2,6 @@
<script>
/**
*
* @param pleavetype 出差方式0全天出差1按时间区间出差2半天3按时间长度出差
@ -17,6 +16,7 @@
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj"), 3);
//出差时间长度不可编辑
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("ccsc"), 1);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("mttsdcc"), 2);
break;
case '3'://按时间区间出差
WfForm.changeFieldValue(WfForm.convertFieldNameToId("scdw"),{ value: '1' });//出差时长单位为小时
@ -26,6 +26,8 @@
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("ccsc"), 3);
//每天出差时长默认为1小时
WfForm.changeFieldValue(WfForm.convertFieldNameToId("ccsc"),{ value: '1' });
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("mttsdcc"), 1);
WfForm.changeFieldValue(WfForm.convertFieldNameToId("mttsdcc"),{ value: '1' });
break;
default:
WfForm.changeFieldValue(WfForm.convertFieldNameToId("scdw"),{ value: '0' });//出差时长单位为小时
@ -33,20 +35,19 @@
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj"), 5);
//出差时间长度不可编辑
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("ccsc"), 1);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("mttsdcc"), 1);
WfForm.changeFieldValue(WfForm.convertFieldNameToId("mttsdcc"),{ value: '1' });
break;
}
}
jQuery().ready(function(){
WfForm.registerCheckEvent(WfForm.OPER_ADDROW+"1", function(callback){
callback(); //允许继续添加行调用callback不调用代表阻断添加
});
});
WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
//adddetail()
});
/**
* 自动添加出差明细
*/
@ -79,7 +80,6 @@
startDate:ksrq,
endDate:jsrq
}
let dateList=undefined;
$.ajax({
url:"/api/attendance/askforleave/getRestDayInterval",
@ -92,10 +92,8 @@
if (res.api_status){
dateList = res.data.data;
}
}
})
//清空第一明细所有记录
WfForm.delDetailRow("detail_1", "all");
//判断出差是否跨天
@ -104,12 +102,13 @@
var arr_ids = (WfForm.getFieldValue(WfForm.convertFieldNameToId("ccr"))).split(',');
//出差人名字数组
var arr_names = (WfForm.getBrowserShowName(WfForm.convertFieldNameToId("ccr"))).split(',');
for (let index = 0; index < arr_ids.length; index++) {
//预置明细记录开始日期
var v_tmpbdate = new Date(ksrq);
//预置明细记录结束日期
var v_tmpedate = new Date(v_tmpbdate);
if (mttsdcc == '1') {
if (mttsdcc == '1') {
for (let index = 0; index < arr_ids.length; index++) {
//预置明细记录开始日期
var v_tmpbdate = new Date(ksrq);
//预置明细记录结束日期
var v_tmpedate = new Date(v_tmpbdate);
//首次循环时,明细开始与结束日期均等于主表开始日期,而主表结束日期一定大于等于开始日期,所以至少添加一笔明细
//当出差为跨天差时,每笔明细的结束日期会加一天
while(v_tmpedate <= jsrq && v_tmpedate <= jsrq){
@ -131,16 +130,12 @@
v_tmpedate = new Date(v_tmpedate);
continue;
}
//初始化明细记录
var addObj = {};
//添加出差人信息
addObj[WfForm.convertFieldNameToId("ccr", "detail_1")] = {value:arr_ids[index],specialobj:[{id:arr_ids[index],name:arr_names[index]}]};
//添加出差类型
addObj[WfForm.convertFieldNameToId("cclx", "detail_1")] = {value:arr_cclx[0].id,specialobj:[{id:arr_cclx[0].id,name:arr_cclx[0].mc}]};
//添加开始日期字段信息
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")] = {value:v_tmpbdate};
if (ccsd === '1'){
@ -191,59 +186,28 @@
v_tmpedate = v_tmpedate.setDate(v_tmpedate.getDate() + 1);
v_tmpedate = new Date(v_tmpedate);
}
}else{
//非每天同时段出差方式出差
//设置第一笔明细结束日期为出差开始日期加一天
v_tmpedate = v_tmpedate.setDate(v_tmpedate.getDate() + 1);
v_tmpedate = new Date(v_tmpedate);
while (v_tmpedate <= jsrq) {
var addObj = {};
addObj[WfForm.convertFieldNameToId("ccr", "detail_1")] = {value:arr_ids[index],specialobj:[{id:arr_ids[index],name:arr_names[index]}]};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")] = {value:v_tmpbdate};
if (ccsd === '1'){
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")] = {value:v_tmpedate};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")] = {value:kssj};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")] = {value:"00:00"};
}else{
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")] = {value:''};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")] = {value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")] = {value:''};
if (ccsd == '0'){
addObj[WfForm.convertFieldNameToId("qtcc", "detail_1")] = {value:'1'};
addObj[WfForm.convertFieldNameToId("btcc", "detail_1")] = {value:'0'};
}else{
addObj[WfForm.convertFieldNameToId("qtcc", "detail_1")] = {value:'0'};
addObj[WfForm.convertFieldNameToId("btcc", "detail_1")] = {value:'1'};
}
}
//追加明细记录
WfForm.addDetailRow("detail_1", addObj);
v_tmpbdate = new Date(v_tmpedate);
kssj = '00:00';
//明细结束日期加一天
v_tmpedate = v_tmpedate.setDate(v_tmpedate.getDate() + 1);
v_tmpedate = new Date(v_tmpedate);
}
var addObj = {};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")] = {value:v_tmpbdate};
if (ccsd === '1'){
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")] = {value:jsrq};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")] = {value:kssj};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")] = {value:jssj};
}else{
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")] = {value:''};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")] = {value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")] = {value:''};
if (ccsd == '0')
addObj[WfForm.convertFieldNameToId("qtcc", "detail_1")] = {value:'1'};
else
addObj[WfForm.convertFieldNameToId("btcc", "detail_1")] = {value:'1'};
}
//追加明细记录
WfForm.addDetailRow("detail_1", addObj);
}
//});
};
//});
};
}else{
var addObj = {};
let ccr =WfForm.getFieldValue(WfForm.convertFieldNameToId("ccr"));
let ccrshowName =WfForm.getBrowserShowName(WfForm.convertFieldNameToId("ccr"));
let cclx = WfForm.getFieldValue(WfForm.convertFieldNameToId("cclx"));
let cclxshowName = WfForm.getBrowserShowName(WfForm.convertFieldNameToId("cclx"));
addObj[WfForm.convertFieldNameToId("ccr", "detail_1")] = {value: ccr,specialobj:[{id:ccr,name:ccrshowName}]};
addObj[WfForm.convertFieldNameToId("cclx", "detail_1")] = {value: cclx,specialobj:[{id:cclx,name:cclxshowName}]};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")] = {value:ksrq};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")] = {value:kssj};
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")] = {value:jsrq};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")] = {value:jssj};
var v_hours = (new Date(jsrq+" "+jssj).getTime() - new Date(ksrq+" "+kssj).getTime())/(1000 * 60 * 60);
addObj[WfForm.convertFieldNameToId("ccsc", "detail_1")] = {value:v_hours};
WfForm.addDetailRow("detail_1", addObj);
}
//添加完明细后,更新主表的总出差时长栏位信息
var totalsc = getTotalsc();
WfForm.changeFieldValue(WfForm.convertFieldNameToId("ccsc"), {value:totalsc});
@ -272,7 +236,6 @@
}
}
}
/**
* 计算明细总出差长度
*/
@ -295,14 +258,11 @@
}
return totalsc;
}
//依据当前出差方式,对页面上的控件显示属性进行调整
resetAttr(WfForm.getFieldValue(WfForm.convertFieldNameToId("ccsd")));
//是否自动产生明细记录标记
//考虑到影响明细记录的栏位如开始结束日期时间等发生变更时,需要重新生成明细,而出差方式变更时又需要对相应栏位的值做修改,所以添加这个开关,防止重复生成明细记录
var autodetail = true;
//差期类别值变更时,自动生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("cclx"),function(obj,id,value){
//关掉自动生成明细记录功能
@ -312,7 +272,6 @@
//打开自动生成明细记录功能
autodetail = true;
});
//出差人员值变更时,自动生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("ccr"),function(obj,id,value){
//关掉自动生成明细记录功能
@ -322,7 +281,6 @@
//打开自动生成明细记录功能
autodetail = true;
});
//出差方式变更时,同样进行页面显示属性的调整
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("ccsd"),function(obj,id,value){
//关掉自动生成明细记录功能
@ -334,7 +292,6 @@
//打开自动生成明细记录功能
autodetail = true;
});
//是否每日重复时间段值变更时,自动生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("mttsdcc"),function(obj,id,value){
//关掉自动生成明细记录功能
@ -344,7 +301,6 @@
//打开自动生成明细记录功能
autodetail = true;
});
//开始日期变更后,自动重新生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("ksrq"),function(obj,id,value){
if (autodetail){
@ -353,7 +309,6 @@
autodetail = true;
}
});
//结束日期变更后,自动重新生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("jsrq"),function(obj,id,value){
if (autodetail){
@ -362,7 +317,6 @@
autodetail = true;
}
});
//开始时间变更后,自动重新生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("kssj"),function(obj,id,value){
if (autodetail){
@ -371,7 +325,6 @@
autodetail = true;
}
});
//结束时间变更后,自动重新生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("jssj"),function(obj,id,value){
if (autodetail){
@ -380,7 +333,6 @@
autodetail = true;
}
});
//出差时长发生变更后,自动重新生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("ccsc"),function(obj,id,value){
if (autodetail){
@ -389,7 +341,6 @@
autodetail = true;
}
});
//绑定全天差栏位值变更事件
jQuery(document).ready(function(){
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("qtcc", "detail_1"),function(id,rowIndex,value){
@ -405,7 +356,6 @@
}
});
});
//绑定半天差值变更事件
jQuery(document).ready(function(){
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("btcc", "detail_1"),function(id,rowIndex,value){
@ -421,7 +371,6 @@
}
});
});
//绑定出差时长栏位值变更事件
jQuery(document).ready(function(){
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("qjsc", "detail_1"),function(id,rowIndex,value){
@ -433,7 +382,6 @@
}
});
});
WfForm.registerCheckEvent(WfForm.OPER_SAVE+","+WfForm.OPER_SUBMIT,function(callback){
var d_count = WfForm.getDetailRowCount("detail_1");
if (Number(d_count) === 0){
@ -449,3 +397,4 @@

Loading…
Cancel
Save