You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

334 lines
25 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.engine.jucailinkq.attendance.attendanceanalysis.wrapper;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.jucailinkq.attendance.attendanceplan.service.AttendancePlanService;
import com.engine.jucailinkq.attendance.attendanceplan.service.impl.AttendancePlanServiceImpl;
import com.engine.jucailinkq.attendance.workflow.service.AllowanceService;
import com.engine.jucailinkq.attendance.workflow.service.impl.AllowanceServiceImpl;
import com.engine.jucailinkq.common.exception.AttendanceRunTimeException;
import com.engine.jucailinkq.common.service.CommonService;
import com.engine.jucailinkq.common.service.impl.CommonServiceImpl;
import com.engine.jucailinkq.common.util.*;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import weaver.general.Util;
import java.time.ZoneOffset;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
public class AttendaceActionWrapper extends Service {
private CommonService commonService = ServiceUtil.getService(CommonServiceImpl.class);
private AttendancePlanService basicsetService = ServiceUtil.getService(AttendancePlanServiceImpl.class);
private AttendanceAnalysisWrapper attendanceAnalysisService = ServiceUtil.getService(AttendanceAnalysisWrapper.class);
private AllowanceService allowanceService = ServiceUtil.getService(AllowanceServiceImpl.class);
public Map<String,Object> alysisActionWrapper(Map<String,Object> paramMap){
Map<String,Object> resultMap = Maps.newHashMap();
try {
log.info("********AttendanceanalysisAction start********");
String startDate = Util.null2String(paramMap.get("startDate"));
String startBeforeDate = DateUtil.beforeDay(startDate,2);
String endDate = Util.null2String(paramMap.get("endDate"));
String endAfterDate = DateUtil.AfterDay(endDate,2);
String userIds = Util.null2String(paramMap.get("userIds"));
int betweenDays = DateUtil.getBetWeenDays(startDate,endDate);
log.info("userIds : [{}],startDate:[{}],endDate:[{}]",userIds,startDate,endDate);
//初始化扩展类
CommonUtil.initExtensionClassHolder();
//入职离职当天是否需要进行考勤分析。0入职离职当天均分析、1入职离职当天不分析
String leaveAndEntry = Util.null2String(ExtensionClassHolder.getGlobalSetMap().get("leaveAndEntry"));
/**考勤项目*/
Map<String,Object> params = Maps.newHashMap();
String modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_kqfa");
params.put("modeId",modeId);
Map<String,Object> attendancePlanMap = commonService.GetAllPersonBySuitOrganzationCmd(params);
Map<String,Object> attendacnePlanItems = basicsetService.getAttendanceItemsGroupByAttendancePlanDataCmd();
//人员所拥有的所有考勤方案
//通用考勤项目
List<Map<String,Object>> generalAttendanceItems = (List<Map<String,Object>>)attendacnePlanItems.get("generalAttendanceItems");
//考勤方案对应所属的考勤项目
Map<String,List<Map<String,Object>>> attendanceItemGroupByPlan = (Map<String,List<Map<String,Object>>>)attendacnePlanItems.get("attendanceItemGroupByPlan");
/**综合工时*/
modeId = Utils.getFormmodeIdMap().get("uf_jcl_kq_zhgs");
params.put("modeId",modeId);
Map<String,Object> workingHourResultMap = commonService.getPersonBySuitOrganzation(params);
//人员所拥有的所有综合工时
Map<String,List<Map<String,String>>> personComprehensiveWorkingHours = (Map<String,List<Map<String,String>>>)workingHourResultMap.get("personAllData");
String queysql = "select * from uf_jcl_kq_zhgs";
List<Map<String,Object>> resultList = DbTools.getSqlToList(queysql);
//所有综合工时
Map<String,List<Map<String,Object>>> workingHourGroupBy = resultList.stream().collect(Collectors.groupingBy(e->e.get("id").toString()));
CommonUtil.checkHavePermission();
if ("".equals(userIds)){
log.info("********AttendanceanalysisAction prepare start******");
String queryDepartEmployeeSql = "select resourceid ,changedate,type_n,newdepartmentid from HRMSTATUSHISTORY where changedate is not null";
//获取离职日期
List<Map<String,Object>> departEmployeeList = DbTools.getSqlToList(queryDepartEmployeeSql);
Map<String,Object> departEmployeeMap = CommonUtil.getDepartEmployeeMap(departEmployeeList);
Map<String,Object> transferDepartmenteeMap = CommonUtil.getTransferDepartment(departEmployeeList);
/**排班结果*/
String querySchedulesql = "select a.id as keyid,a.* from uf_pbjg a where bcrq >=? and bcrq<=? order by bcrq";
List<Map<String,Object>> allScheduleList = DbTools.getSqlToList(querySchedulesql,startDate,endDate);
/**加班计划*/
String queryOverplansql = "select a.id,b.jbry,b.ksrq,b.kssj,b.jblx,b.jsrq,b.jssj,b.jbsc,b.gsrq,b.d_jxgz,b.jxsc from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.gsrq >=? and b.gsrq<=? and (b.jbcx=0 or b.jbcx is null) and a.jlzt=1";
List<Map<String,Object>> allOverPlanList = DbTools.getSqlToList(queryOverplansql,startDate,endDate);
Map<String,List<Map<String,Object>>> allOverPlanGroup = allOverPlanList.stream().collect(Collectors.groupingBy(e->e.get("jbry").toString()));
/**班次信息*/
String querClasssql = "select a.xxbdkzdjb,a.sfxx,a.id bcxx,a.edsc,a.zgzsc,a.bcsdxx,a.sfdx,a.sfkt,b.bdlx,a.btgz,a.fgsjd,a.zddxfz,a.dxhs,b.kssj dtkssj,b.jssj dtjssj,b.ksdk,b.jsdk,b.tqdkfzs,b.thdkfzs,b.edxss,b.edfzs,b.edts,b.sfdx dtsfdx,b.zddxfz dtzddxfz,b.dxhs dtdxhs,b.gsrq from uf_jcl_kq_bcxx a left join uf_jcl_kq_bcxx_dt1 b on a.id=b.mainid";
List<Map<String,Object>> allClassInfoList = DbTools.getSqlToList(querClasssql);
/**出差信息*/
String querEvectionsql = "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.ksrq<=? and b.jsrq>=? and (b.cxcc=0 or b.cxcc is null) and a.jlzt=1";
Map<String,List<Map<String,Object>>> evectionGroup = DbTools.getSqlToList(querEvectionsql,endAfterDate,startBeforeDate).stream().collect(Collectors.groupingBy(e->e.get("ccr").toString()));
/**请假信息*/
String queryAskForsql = "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.ksrq<=? and b.jsrq>=? and (b.cxqj=0 or b.cxqj is null) and a.jlzt=1";
Map<String,List<Map<String,Object>>> askforGroup = DbTools.getSqlToList(queryAskForsql,endAfterDate,startBeforeDate).stream().collect(Collectors.groupingBy(e->e.get("qjry").toString()));
/**候选班组*/
String queryHxbz = "select * from uf_jcl_kq_hxbz_dt1";
List<Map<String,Object>> hxbzList = DbTools.getSqlToList(queryHxbz);
String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where status <> '5' and status <> '4' and status <> '7' and (belongto is null or belongto='-1' or belongto='0')";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and signdate >= ? and signdate <= ? order by signdate,signtime";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
//补打卡记录
sql = "select id,bdkry userid,dkrq signdate,dksj signtime from uf_jcl_kq_bdkjl where dkrq >= ? and dkrq <= ? and jlzt=1 order by dkrq,dksj";
List<Map<String,Object>> makeUpList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
if (makeUpList.size() > 0){
dataList.addAll(makeUpList);
}
dataList = dataList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
sql = "select sjzt,sgsj,ygid,bc,fbid,bm,rq,j1,c1,j2,c2,j3,c3,j4,c4,j5,c5,j6,c6,j7,c7,j8,c8 from uf_jcl_kq_cqjg where rq>=? and rq<=?";
List<Map<String,Object>> attendaceResult = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
Map<String,List<Map<String,Object>>> attendaceGroupById = attendaceResult.stream().collect(Collectors.groupingBy(e->e.get("ygid").toString()));
log.info("********AttendanceanalysisAction prepare end******");
int anyslsSize = 0;
for (Map<String,Object> userMap :userList){
anyslsSize++;
String userId = userMap.get("id").toString();
//入职日期
String companystartDate = Util.null2String(userMap.get("companystartdate"));
//离职日期
String terminationDate = Util.null2String(departEmployeeMap.get(userId));
if (!"".equals(terminationDate) && !"".equals(companystartDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(companystartDate)) <=0){
terminationDate="";
}
log.info("***********analysis userId:{},anyslsSize:{},allsize:{} start***********", userId,anyslsSize,userList.size());
//出勤结果,进出时间
Map<String,Map<String,Object>> clockInTimeMap = Maps.newHashMap();
Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap();
if (attendaceGroupById.get(userId) != null && attendaceGroupById.get(userId).size() > 0) {
attendaceResultMap = attendaceGroupById.get(userId).stream().collect(Collectors.groupingBy(e -> e.get("rq").toString()));
for (Map<String, Object> map: attendaceGroupById.get(userId)){
clockInTimeMap.put(map.get("rq").toString(),map);
}
}
Map<String,Object> analysisParam = Maps.newHashMap();
analysisParam.put("generalAttendanceItems",generalAttendanceItems);
analysisParam.put("attendancePlanMap",attendancePlanMap);
analysisParam.put("attendanceItemGroupByPlan",attendanceItemGroupByPlan);
analysisParam.put("comprehensiveWorkingHourList",personComprehensiveWorkingHours.get(userId)==null? Lists.newArrayList():personComprehensiveWorkingHours.get(userId));
analysisParam.put("workingHourGroupBy",workingHourGroupBy);
analysisParam.put("allScheduleList",allScheduleList);
analysisParam.put("allClassInfoList",allClassInfoList);
analysisParam.put("allOverPlanList",allOverPlanGroup.get(userId)==null?Lists.newArrayList():allOverPlanGroup.get(userId));
analysisParam.put("evectionList",evectionGroup.get(userId)==null?Lists.newArrayList():evectionGroup.get(userId));
analysisParam.put("askforList",askforGroup.get(userId)==null?Lists.newArrayList():askforGroup.get(userId));
analysisParam.put("hxbzList",hxbzList);
analysisParam.put("seclevel",Util.null2String(userMap.get("seclevel")));
analysisParam.put("departmentId",Util.null2String(userMap.get("departmentid")));
analysisParam.put("subCompanyId",Util.null2String(userMap.get("subcompanyid1")));
analysisParam.put("transferDepartmenteeMap",transferDepartmenteeMap.get(userId));
for (int i=0; i<=betweenDays;i++){
String date = DateUtil.AfterDay(startDate,i);
if (leaveAndEntry.equals("1")){
if (("".equals(companystartDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(companystartDate))>0)
&& ("".equals(terminationDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(terminationDate)) <0)){
try {
attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),analysisParam,clockInTimeMap,attendaceResultMap);
}catch (Exception e){
log.info("***********analysis userId:{} date: {} error ***********", userId,date);
log.error("execute fail,catch error: [{}]",e);
}
}
}else {
if (("".equals(companystartDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(companystartDate))>=0)
&& ("".equals(terminationDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(terminationDate)) <=0)){
try {
attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),analysisParam,clockInTimeMap,attendaceResultMap);
}catch (Exception e){
log.info("***********analysis userId:{} date: {} error ***********", userId,date);
log.error("execute fail,catch error: [{}]",e);
}
}
}
}
allowanceService.addAllowanceRecords(paramMap);
}
}else {
log.info("********AttendanceanalysisAction prepare start******");
String queryDepartEmployeeSql = "select resourceid ,changedate,type_n,newdepartmentid from HRMSTATUSHISTORY where changedate is not null and resourceid in ("+userIds+")";
//获取离职日期
List<Map<String,Object>> departEmployeeList = DbTools.getSqlToList(queryDepartEmployeeSql);
Map<String,Object> departEmployeeMap = CommonUtil.getDepartEmployeeMap(departEmployeeList);
Map<String,Object> transferDepartmenteeMap = CommonUtil.getTransferDepartment(departEmployeeList);
/**排班结果*/
String querySchedulesql = "select a.id as keyid,a.* from uf_pbjg a where bcrq >=? and bcrq<=? order by bcrq";
List<Map<String,Object>> allScheduleList = DbTools.getSqlToList(querySchedulesql,startBeforeDate,endAfterDate);
/**加班计划*/
String queryOverplansql = "select a.id,b.jbry,b.ksrq,b.kssj,b.jblx,b.jsrq,b.jssj,b.jbsc,b.gsrq,b.d_jxgz,b.jxsc from uf_jcl_kq_jbjh a left join uf_jcl_kq_jbjh_dt1 b on a.id=b.mainid where b.jbry in ("+userIds+") and b.gsrq >=? and b.gsrq<=? and (b.jbcx=0 or b.jbcx is null) and a.jlzt=1";
List<Map<String,Object>> allOverPlanList = DbTools.getSqlToList(queryOverplansql,startDate,endDate);
Map<String,List<Map<String,Object>>> allOverPlanGroup = allOverPlanList.stream().collect(Collectors.groupingBy(e->e.get("jbry").toString()));
/**班次信息*/
String querClasssql = "select a.xxbdkzdjb,a.sfxx,a.id bcxx,a.edsc,a.zgzsc,a.bcsdxx,a.sfdx,a.sfkt,b.bdlx,a.btgz,a.fgsjd,a.zddxfz,a.dxhs,b.kssj dtkssj,b.jssj dtjssj,b.ksdk,b.jsdk,b.tqdkfzs,b.thdkfzs,b.edxss,b.edfzs,b.edts,b.sfdx dtsfdx,b.zddxfz dtzddxfz,b.dxhs dtdxhs,b.gsrq from uf_jcl_kq_bcxx a left join uf_jcl_kq_bcxx_dt1 b on a.id=b.mainid";
List<Map<String,Object>> allClassInfoList = DbTools.getSqlToList(querClasssql);
/**出差信息*/
String querEvectionsql = "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";
Map<String,List<Map<String,Object>>> evectionGroup = DbTools.getSqlToList(querEvectionsql,endAfterDate,startBeforeDate).stream().collect(Collectors.groupingBy(e->e.get("ccr").toString()));
/**请假信息*/
String queryAskForsql = "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";
Map<String,List<Map<String,Object>>> askforGroup = DbTools.getSqlToList(queryAskForsql,endAfterDate,startBeforeDate).stream().collect(Collectors.groupingBy(e->e.get("qjry").toString()));
/**候选班组*/
String queryHxbz = "select * from uf_jcl_kq_hxbz_dt1";
List<Map<String,Object>> hxbzList = DbTools.getSqlToList(queryHxbz);
String sql = "select id,userid,signdate,signtime from hrmschedulesign where isincom=1 and userid in ("+userIds+") and signdate >= ? and signdate <= ? order by signdate,signtime";
List<Map<String,Object>> dataList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
String queryUserSql = "select id,companystartdate,seclevel,departmentid,subcompanyid1 from hrmresource where id in ("+userIds+") and (belongto is null or belongto='-1' or belongto='0')";
List<Map<String,Object>> userList = DbTools.getSqlToList(queryUserSql);
Map<String,List<Map<String,Object>>> userGroupMap = userList.stream().collect(Collectors.groupingBy(e->e.get("id").toString()));
//补打卡记录
sql = "select id,bdkry userid,dkrq signdate,dksj signtime from uf_jcl_kq_bdkjl where bdkry in ("+userIds+") and dkrq >= ? and dkrq <= ? and jlzt=1 order by dkrq,dksj";
List<Map<String,Object>> makeUpList = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
if (makeUpList.size() > 0){
dataList.addAll(makeUpList);
}
dataList = dataList.stream().sorted(Comparator.comparing(e->DateUtil.getTime(e.get("signdate")+" "+e.get("signtime")).toInstant(ZoneOffset.of("+8")).toEpochMilli())).collect(Collectors.toList());
Map<String, List<Map<String,Object>>> collect = dataList.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("userid"))));
sql = "select sjzt,sgsj,ygid,bc,fbid,bm,rq,j1,c1,j2,c2,j3,c3,j4,c4,j5,c5,j6,c6,j7,c7,j8,c8 from uf_jcl_kq_cqjg where rq>=? and rq<=? and ygid in ("+userIds+")";
List<Map<String,Object>> attendaceResult = DbTools.getSqlToList(sql,startBeforeDate,endAfterDate);
Map<String,List<Map<String,Object>>> attendaceGroupById = attendaceResult.stream().collect(Collectors.groupingBy(e->e.get("ygid").toString()));
log.info("********AttendanceanalysisAction prepare end******");
for (String userId : userIds.split(",")){
//入职日期
String companystartDate = Util.null2String(userGroupMap.get(userId).get(0).get("companystartdate"));
//离职日期
String terminationDate = Util.null2String(departEmployeeMap.get(userId));
if (!"".equals(terminationDate) && !"".equals(companystartDate) && DateUtil.getTime(terminationDate).compareTo(DateUtil.getTime(companystartDate)) <=0){
terminationDate="";
}
//出勤结果,进出时间
Map<String,Map<String,Object>> clockInTimeMap = Maps.newHashMap();
Map<String,Object> analysisParam = Maps.newHashMap();
analysisParam.put("generalAttendanceItems",generalAttendanceItems);
analysisParam.put("attendancePlanMap",attendancePlanMap);
analysisParam.put("attendanceItemGroupByPlan",attendanceItemGroupByPlan);
analysisParam.put("comprehensiveWorkingHourList",personComprehensiveWorkingHours.get(userId)==null?Lists.newArrayList():personComprehensiveWorkingHours.get(userId));
analysisParam.put("workingHourGroupBy",workingHourGroupBy);
analysisParam.put("allScheduleList",allScheduleList);
analysisParam.put("allClassInfoList",allClassInfoList);
analysisParam.put("allOverPlanList",allOverPlanGroup.get(userId)==null?Lists.newArrayList():allOverPlanGroup.get(userId));
analysisParam.put("evectionList",evectionGroup.get(userId)==null?Lists.newArrayList():evectionGroup.get(userId));
analysisParam.put("askforList",askforGroup.get(userId)==null?Lists.newArrayList():askforGroup.get(userId));
analysisParam.put("hxbzList",hxbzList);
analysisParam.put("seclevel",userGroupMap.get(userId).get(0).get("seclevel"));
analysisParam.put("departmentId",userGroupMap.get(userId).get(0).get("departmentid"));
analysisParam.put("subCompanyId",userGroupMap.get(userId).get(0).get("subcompanyid1"));
analysisParam.put("transferDepartmenteeMap",transferDepartmenteeMap.get(userId));
Map<String, List<Map<String, Object>>> attendaceResultMap = Maps.newHashMap();
if (attendaceGroupById.get(userId) != null && attendaceGroupById.get(userId).size() > 0) {
attendaceResultMap = attendaceGroupById.get(userId).stream().collect(Collectors.groupingBy(e -> e.get("rq").toString()));
for (Map<String, Object> map: attendaceGroupById.get(userId)){
clockInTimeMap.put(map.get("rq").toString(),map);
}
}
for (int i=0; i<=betweenDays;i++){
String date = DateUtil.AfterDay(startDate,i);
if (leaveAndEntry.equals("1")){
if (("".equals(companystartDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(companystartDate))>0)
&& ("".equals(terminationDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(terminationDate)) <0)){
log.info("***********analysis userId:{},analysisDate:{} start***********", userId, date);
try {
attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),analysisParam,clockInTimeMap,attendaceResultMap);
}catch (Exception e){
log.info("***********analysis userId:{} date: {} error ***********", userId,date);
log.error("execute fail,catch error: [{}]",e);
if (userIds.split(",").length ==1 && startDate.equals(endDate)){
throw new AttendanceRunTimeException(e);
}
}
}
}else {
if (("".equals(companystartDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(companystartDate))>=0)
&& ("".equals(terminationDate) || DateUtil.getTime(date).compareTo(DateUtil.getTime(terminationDate)) <=0)){
log.info("***********analysis userId:{},analysisDate:{} start***********", userId, date);
try {
attendanceAnalysisService.attendanceAnalysisForApi(userId,date,collect.get(userId),analysisParam,clockInTimeMap,attendaceResultMap);
}catch (Exception e){
log.info("***********analysis userId:{} date: {} error ***********", userId,date);
log.error("execute fail,catch error: [{}]",e);
if (userIds.split(",").length ==1 && startDate.equals(endDate)){
throw new AttendanceRunTimeException(e);
}
}
}
}
}
}
paramMap.put("empIds",paramMap.get("userIds"));
allowanceService.addAllowanceRecords(paramMap);
}
log.info("********AttendanceanalysisAction end********");
resultMap.put("code","200");
}catch (Exception e){
log.error("execute fail,catch error: [{}]",e);
resultMap.put("code","500");
resultMap.put("message",e.getCause().getMessage());
}
ExtensionClassHolder.remove();
return resultMap;
}
}