fix bug
This commit is contained in:
parent
698d75ae49
commit
6bac35b3ee
|
|
@ -0,0 +1,21 @@
|
|||
package com.engine.bjcj220907.service;
|
||||
|
||||
import com.engine.bjcj220907.entity.Attend4MonthBonus;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @date 2022/09/27 15:55
|
||||
* @description 拉取考勤中数据供境外津贴使用
|
||||
*/
|
||||
public interface GetKQ4OverseasAllowanceCountService {
|
||||
|
||||
/***
|
||||
* @description 获取境外常驻用户考勤中请假天数以及公务回国天数
|
||||
* @return Map<String,Double>
|
||||
* @author Harryxzy
|
||||
* @date 2022/9/27 15:58
|
||||
*/
|
||||
Map<String,Double> getKQDatas(Attend4MonthBonus attend4MonthBonus);
|
||||
}
|
||||
|
|
@ -0,0 +1,102 @@
|
|||
package com.engine.bjcj220907.service.impl;
|
||||
|
||||
import com.alibaba.druid.support.json.JSONUtils;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.engine.bjcj220907.entity.Attend4MonthBonus;
|
||||
import com.engine.bjcj220907.service.GetKQ4OverseasAllowanceCountService;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.kq.cmd.report.GetKQReportCmd;
|
||||
import com.weaver.general.BaseBean;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @date 2022/09/27 15:56
|
||||
* @description 拉取考勤中数据供境外津贴使用
|
||||
*/
|
||||
public class GetKQ4OverseasAllowanceCountServiceImpl extends Service implements GetKQ4OverseasAllowanceCountService {
|
||||
|
||||
BaseBean baseBean = new BaseBean();
|
||||
/***
|
||||
* @description 获取境外常驻用户考勤中请假天数以及公务回国天数
|
||||
* @return Map<String,Double>
|
||||
* @author Harryxzy
|
||||
* @date 2022/9/27 15:58
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Double> getKQDatas(Attend4MonthBonus attend4MonthBonus) {
|
||||
baseBean.writeLog("开始获取考勤数据,参数{}", attend4MonthBonus);
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM");
|
||||
List<Map> columnsList = new ArrayList<>();
|
||||
List<Map<String, String>> dataList = new ArrayList<>();
|
||||
try {
|
||||
Map<String, Object> paramsMap = new HashMap<String, Object>();
|
||||
paramsMap.put("typeselect", "6");
|
||||
paramsMap.put("pageIndex", 1);
|
||||
paramsMap.put("pageSize", 10000);
|
||||
paramsMap.put("fromDate", sdf.format(attend4MonthBonus.getBeginDate()));
|
||||
paramsMap.put("toDate", sdf.format(attend4MonthBonus.getEndDate()));
|
||||
paramsMap.put("viewScope", "0");
|
||||
paramsMap.put("isNoAccount", "1");
|
||||
paramsMap.put("attendanceSerial", "0");
|
||||
paramsMap.put("status", "9");
|
||||
Map<String, Object> temp = new HashMap<String, Object>();
|
||||
temp.put("data", JSONObject.toJSONString(paramsMap));
|
||||
temp.put("reportType", "month");
|
||||
Map execute = commandExecutor.execute(new GetKQReportCmd(temp,user));
|
||||
// 获取列数据
|
||||
columnsList = (List<Map>) execute.get("columns");
|
||||
List c = new ArrayList();
|
||||
columnsList.stream().forEach(column->{
|
||||
if(column.get("title").equals("旷工")){
|
||||
c.add(column.get("dataIndex"));
|
||||
}
|
||||
if(column.get("title").equals("出差及请假")){
|
||||
List<Map> children =(List<Map>) column.get("children");
|
||||
children.stream().forEach(i->{
|
||||
if((!i.get("title").equals("境内年假")) && (!i.get("title").equals("境外年假")) && (!i.get("title").equals("奖励假")) && (!i.get("title").equals("工伤")) && (!i.get("title").equals("隔离假")) ){
|
||||
c.add(i.get("dataIndex"));
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
baseBean.writeLog("计算缺勤列:"+c);
|
||||
dataList = (List<Map<String, String>>) execute.get("datas");
|
||||
// 获取每个人的缺勤天数
|
||||
Map<String, Double> qqDays = new HashMap<>();
|
||||
// dataList.stream().forEach(i->{
|
||||
// if(attend4MonthBonus.getUser()!=null){
|
||||
// if(i.get("resourceId").equals(attend4MonthBonus.getUser())){
|
||||
// double[] qq={0.0};
|
||||
// c.stream().forEach(j->{
|
||||
// // 累加各种请假天数
|
||||
// qq[0]+=Double.parseDouble(i.get(j));
|
||||
// });
|
||||
// String s = i.get("resourceId") +"-"+ sdf2.format(attend4MonthBonus.getEndDate());
|
||||
// qqDays.put(s,qq[0]);
|
||||
// }
|
||||
// }else{
|
||||
// double[] qq={0.0};
|
||||
// c.stream().forEach(j->{
|
||||
// // 累加各种请假天数
|
||||
// qq[0]+=Double.parseDouble(i.get(j));
|
||||
// });
|
||||
// String s = i.get("resourceId") +"-"+ sdf2.format(attend4MonthBonus.getEndDate());
|
||||
// qqDays.put(s,qq[0]);
|
||||
// }
|
||||
//
|
||||
// });
|
||||
baseBean.writeLog("获取的考勤缺勤天数,{}", JSONUtils.toJSONString(qqDays));
|
||||
return qqDays;
|
||||
} catch (Exception e) {
|
||||
baseBean.writeLog("获取考勤数据失败{}", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -2,12 +2,12 @@ package com.engine.bjcj220907.service.impl;
|
|||
|
||||
import com.engine.bjcj220907.dao.MonthBonusDAO;
|
||||
import com.engine.bjcj220907.dao.OverseasAllowanceDAO;
|
||||
import com.engine.bjcj220907.entity.JWJT;
|
||||
import com.engine.bjcj220907.entity.JwCZInfo;
|
||||
import com.engine.bjcj220907.entity.JwCZInfoDetail;
|
||||
import com.engine.bjcj220907.entity.XcdjJwjtParam;
|
||||
import com.engine.bjcj220907.entity.*;
|
||||
import com.engine.bjcj220907.service.GetKQ4OverseasAllowanceCountService;
|
||||
import com.engine.bjcj220907.service.OverseasAllowanceCountService;
|
||||
import com.engine.bjcj220907.utils.BjcjCommonUtils;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import weaver.general.BaseBean;
|
||||
|
||||
import java.util.*;
|
||||
|
|
@ -18,7 +18,7 @@ import java.util.stream.Collectors;
|
|||
* @date 2022/09/26 14:03
|
||||
* @description 境外津贴
|
||||
*/
|
||||
public class OverseasAllowanceCountServiceImpl implements OverseasAllowanceCountService {
|
||||
public class OverseasAllowanceCountServiceImpl extends Service implements OverseasAllowanceCountService {
|
||||
|
||||
BaseBean baseBean = new BaseBean();
|
||||
|
||||
|
|
@ -29,6 +29,11 @@ public class OverseasAllowanceCountServiceImpl implements OverseasAllowanceCount
|
|||
public OverseasAllowanceDAO getOverseasAllowanceDAO(){
|
||||
return new OverseasAllowanceDAO();
|
||||
}
|
||||
|
||||
private GetKQ4OverseasAllowanceCountService GetKQ4OverseasAllowanceCountService() {
|
||||
return ServiceUtil.getService(GetKQ4OverseasAllowanceCountServiceImpl.class,user);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 计算境外津贴
|
||||
* @return void
|
||||
|
|
@ -57,7 +62,12 @@ public class OverseasAllowanceCountServiceImpl implements OverseasAllowanceCount
|
|||
List<String> users = results.stream().map(i -> i.getUser()).collect(Collectors.toList());
|
||||
Map<Integer, XcdjJwjtParam> usersXSDJ = getOverseasAllowanceDAO().getXCDJByUsers(users,startAttendanceCal);
|
||||
baseBean.writeLog("获取所有员工考勤所属月的薪酬等级及所对应的境外津贴标准:"+usersXSDJ.size());
|
||||
|
||||
// 封装薪酬等级、境外津贴标准
|
||||
getXcdjAndJwjtbz(results,usersXSDJ);
|
||||
// 获取公务回国天数 及 公务回国工作日天数
|
||||
Attend4MonthBonus build = Attend4MonthBonus.builder().beginDate(startAttendanceCal.getTime()).endDate(endAttendanceCal.getTime()).build();
|
||||
GetKQ4OverseasAllowanceCountService().getKQDatas(build);
|
||||
baseBean.writeLog("调用考勤接口获取公务回国天数 及 公务回国工作日天数"+usersXSDJ.size());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -144,4 +154,17 @@ public class OverseasAllowanceCountServiceImpl implements OverseasAllowanceCount
|
|||
return results;
|
||||
}
|
||||
|
||||
/***
|
||||
* @description 将获取到的薪酬等级与境外津贴标准与人员对应
|
||||
* @return void
|
||||
* @author Harryxzy
|
||||
* @date 2022/9/27 15:37
|
||||
*/
|
||||
public void getXcdjAndJwjtbz(List<JWJT> results ,Map<Integer, XcdjJwjtParam> usersXSDJ){
|
||||
results.stream().forEach(item-> {
|
||||
XcdjJwjtParam param = usersXSDJ.get(Integer.valueOf(item.getUser()));
|
||||
item.setXcdj(param.getXcdj());
|
||||
item.setJwjtbz(param.getJwjtbz());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
package com.engine.bjcj220907.web;
|
||||
|
||||
import com.engine.bjcj220907.service.OverseasAllowanceCountService;
|
||||
import com.engine.bjcj220907.service.impl.OverseasAllowanceCountServiceImpl;
|
||||
import com.engine.bjcj220907.utils.BjcjCommonUtils;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import weaver.general.BaseBean;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
|
@ -24,6 +26,10 @@ public class OverseasAllowanceCountController {
|
|||
|
||||
BaseBean baseBean = new BaseBean();
|
||||
|
||||
private OverseasAllowanceCountService getOverseasAllowanceCountService(User user) {
|
||||
return ServiceUtil.getService(OverseasAllowanceCountServiceImpl.class,user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 境外津贴计算
|
||||
*/
|
||||
|
|
@ -33,9 +39,9 @@ public class OverseasAllowanceCountController {
|
|||
public void countOverseasAllowance(@Context HttpServletRequest request, @Context HttpServletResponse response) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
Calendar cal = BjcjCommonUtils.getNowCalendar();
|
||||
cal.add(Calendar.MONTH,-6);
|
||||
cal.add(Calendar.MONTH,-1);
|
||||
baseBean.writeLog("开始计算:"+cal.getTime()+"的境外津贴");
|
||||
new OverseasAllowanceCountServiceImpl().countOverseasAllowance(cal);
|
||||
getOverseasAllowanceCountService(user).countOverseasAllowance(cal);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue