106 lines
4.5 KiB
Java
106 lines
4.5 KiB
Java
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.GetKQ4MonthBonusService;
|
|
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/09 16:17
|
|
* @description 拉取考勤中考勤信息进行解析
|
|
*/
|
|
public class GetKQ4MonthBonusServiceImpl extends Service implements GetKQ4MonthBonusService {
|
|
|
|
BaseBean baseBean = new BaseBean();
|
|
|
|
/**
|
|
* @description 获取所有员工的缺勤天数,(境外、境内年假、奖励假、工伤、隔离假除外)
|
|
* @return Map<String,Object>
|
|
* @author Harryxzy
|
|
* @date 2022/9/13 10:22
|
|
*/
|
|
@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", "0");
|
|
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(column.get("dataIndex"));
|
|
}
|
|
});
|
|
}
|
|
});
|
|
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;
|
|
}
|
|
|
|
|
|
|
|
}
|