diff --git a/src/com/api/attendance/summary/AttendanceSummaryActionApi.java b/src/com/api/attendance/summary/AttendanceSummaryActionApi.java index 0d24eab..f3ba514 100644 --- a/src/com/api/attendance/summary/AttendanceSummaryActionApi.java +++ b/src/com/api/attendance/summary/AttendanceSummaryActionApi.java @@ -1,6 +1,6 @@ package com.api.attendance.summary; -import com.engine.attendance.workflow.web.AttendanceSummaryApi; +import com.engine.attendance.attendanceanalysis.web.AttendanceSummaryApi; import javax.ws.rs.Path; diff --git a/src/com/engine/attendance/workflow/service/AttendanceSummaryService.java b/src/com/engine/attendance/attendanceanalysis/service/AttendanceSummaryService.java similarity index 61% rename from src/com/engine/attendance/workflow/service/AttendanceSummaryService.java rename to src/com/engine/attendance/attendanceanalysis/service/AttendanceSummaryService.java index 80ea2d2..5bcbcc7 100644 --- a/src/com/engine/attendance/workflow/service/AttendanceSummaryService.java +++ b/src/com/engine/attendance/attendanceanalysis/service/AttendanceSummaryService.java @@ -1,5 +1,9 @@ -package com.engine.attendance.workflow.service; +package com.engine.attendance.attendanceanalysis.service; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.Map; public interface AttendanceSummaryService { @@ -17,4 +21,12 @@ public interface AttendanceSummaryService { Map getCqSummaryReport(Map params); Map getCqSummarySearchCondition(Map params); + + Map exportCqSummaryReport(Map params, HttpServletRequest request, HttpServletResponse response); + + /** + * 刷新考勤日报视图 + * @return + */ + Map refreshViewAttendanceDaily(); } diff --git a/src/com/engine/attendance/workflow/service/impl/AttendanceSummaryServiceImpl.java b/src/com/engine/attendance/attendanceanalysis/service/impl/AttendanceSummaryServiceImpl.java similarity index 80% rename from src/com/engine/attendance/workflow/service/impl/AttendanceSummaryServiceImpl.java rename to src/com/engine/attendance/attendanceanalysis/service/impl/AttendanceSummaryServiceImpl.java index d198e3c..164a9b5 100644 --- a/src/com/engine/attendance/workflow/service/impl/AttendanceSummaryServiceImpl.java +++ b/src/com/engine/attendance/attendanceanalysis/service/impl/AttendanceSummaryServiceImpl.java @@ -1,13 +1,14 @@ -package com.engine.attendance.workflow.service.impl; +package com.engine.attendance.attendanceanalysis.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.engine.attendance.workflow.cmd.GetCqSummarySearchConditionCmd; -import com.engine.attendance.workflow.service.AttendanceSummaryService; +import com.engine.attendance.attendanceanalysis.service.AttendanceSummaryService; import com.engine.common.util.DbTools; import com.engine.core.impl.Service; import com.engine.kq.biz.KQHolidaySetBiz; import com.engine.kq.biz.KQReportBiz; +import com.engine.kq.util.ExcelUtil; import com.engine.kq.util.PageUidFactory; import weaver.conn.RecordSet; import weaver.general.BaseBean; @@ -19,6 +20,8 @@ import weaver.hrm.job.JobTitlesComInfo; import weaver.hrm.resource.ResourceComInfo; import weaver.systeminfo.SystemEnv; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.time.LocalDate; import java.util.*; @@ -293,33 +296,41 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS } }); - //分页处理 - int start = (pageIndex - 1) * pageSize; - int end = Math.min(pageIndex * pageSize, dataList.size()); - List> resultList = new ArrayList<>(); - if (start <= dataList.size()) { - resultList = dataList.subList(start, end); - } - count = dataList.size(); - if (count <= 0) { - pageCount = 0; + String exportSign = Util.null2String(params.get("exportSign")); + if (exportSign.equals("1")) { + //导出时,不做分页处理 + retmap.put("columns",columns); + retmap.put("datas",dataList); } else { - pageCount = count / pageSize + ((count % pageSize > 0) ? 1 : 0); + //分页处理 + int start = (pageIndex - 1) * pageSize; + int end = Math.min(pageIndex * pageSize, dataList.size()); + List> resultList = new ArrayList<>(); + if (start <= dataList.size()) { + resultList = dataList.subList(start, end); + } + count = dataList.size(); + if (count <= 0) { + pageCount = 0; + } else { + pageCount = count / pageSize + ((count % pageSize > 0) ? 1 : 0); + } + isHaveNext = (pageIndex <= pageCount) ? 1 : 0; + isHavePre = (pageIndex >= 1) ? 1 : 0; + + List lsHolidays = KQHolidaySetBiz.getHolidaySetListByScope(""+user.getUID(),fromDate,toDate); + retmap.put("holidays", lsHolidays); + + retmap.put("columns",columns); + retmap.put("datas",resultList); + retmap.put("pagesize", pageSize); + retmap.put("pageindex", pageIndex); + retmap.put("count", count); + retmap.put("pagecount", pageCount); + retmap.put("ishavepre", isHavePre); + retmap.put("ishavenext", isHaveNext); } - isHaveNext = (pageIndex <= pageCount) ? 1 : 0; - isHavePre = (pageIndex >= 1) ? 1 : 0; - - List lsHolidays = KQHolidaySetBiz.getHolidaySetListByScope(""+user.getUID(),fromDate,toDate); - retmap.put("holidays", lsHolidays); - - retmap.put("columns",columns); - retmap.put("datas",resultList); - retmap.put("pagesize", pageSize); - retmap.put("pageindex", pageIndex); - retmap.put("count", count); - retmap.put("pagecount", pageCount); - retmap.put("ishavepre", isHavePre); - retmap.put("ishavenext", isHaveNext); + }catch (Exception e){ bs.writeLog(e); } @@ -331,6 +342,215 @@ public class AttendanceSummaryServiceImpl extends Service implements AttendanceS return this.commandExecutor.execute(new GetCqSummarySearchConditionCmd(params, user)); } + @Override + public Map exportCqSummaryReport(Map params, HttpServletRequest request, HttpServletResponse response) { + Map retmap = null; + try { + retmap = new HashMap(); + params.put("exportSign", "1"); + Map cqSummaryReportResult = getCqSummaryReport(params); + List> resultList = (List>) cqSummaryReportResult.get("datas"); + List> columns = (List>) cqSummaryReportResult.get("columns"); + + JSONObject jsonObj = JSON.parseObject(Util.null2String(params.get("data"))); + String showColumns = Util.null2String(jsonObj.get("showColumns")); + List showColumnKeyList = new ArrayList<>(); + showColumnKeyList.add("lastname"); + if (!showColumns.equals("")) { + showColumnKeyList.addAll(Arrays.asList(showColumns.split(","))); + } + + //组装导出数据 + List> dataList = new ArrayList<>(); + List data = null; + for (Map dataItem : resultList) { + data = new ArrayList<>(); + for (String columnKey : showColumnKeyList) { + data.add(Util.null2String(dataItem.get(columnKey))); + } + dataList.add(data); + } + //获取列头key和value映射 + Map columnValueMap = new HashMap<>(); + for(Map columnItem : columns) { + String title = Util.null2String(columnItem.get("title")); + String unit = Util.null2String(columnItem.get("unit")); + if (!"".equals(title) && !"".equals(unit)) { + title = title + "(" + unit + ")"; + } + columnValueMap.put(columnItem.get("key").toString(), title); + } + //组装导出列头 + List titleList = new ArrayList<>(); + Map title = null; + for (String columnKey : showColumnKeyList) { + title = new HashMap<>(); + title.put("title", columnValueMap.get(columnKey)); + title.put("width", 30*256); + titleList.add(title); + } + //组装页标签 + Map sheet = new HashMap<>(); + sheet.put("sheetName", SystemEnv.getHtmlLabelName(390351, user.getLanguage())); + sheet.put("sheetTitle", SystemEnv.getHtmlLabelName(390351, user.getLanguage())); + sheet.put("dataList", dataList); + sheet.put("titleList", titleList); + List lsSheet = new ArrayList<>(); + lsSheet.add(sheet); + + LinkedHashMap workbook = new LinkedHashMap<>(); + workbook.put("sheet", lsSheet); + workbook.put("fileName", SystemEnv.getHtmlLabelName(390351, user.getLanguage())); + ExcelUtil ExcelUtil = new ExcelUtil(); + Map exportMap= ExcelUtil.export(workbook,request,response); + retmap.putAll(exportMap); + retmap.put("status", "1"); + } catch (Exception e) { + retmap.put("status", "-1"); + retmap.put("message", SystemEnv.getHtmlLabelName(382661, user.getLanguage())); + bs.writeLog(e.getMessage()); + } + return retmap; + } + + @Override + public Map refreshViewAttendanceDaily() { + Map retmap = new HashMap<>(); + String sql = ""; + String viewName = "v_attdaily"; + //判断视图v_attdaily是否存在 + RecordSet rs = new RecordSet(); + String dbType = rs.getDBType(); + if ("mysql".equals(dbType) || "postgresql".equals(dbType) || "sqlserver".equals(dbType) || "dm".equals(dbType) || "st".equals(dbType)) { + sql = "SELECT * FROM information_schema.views WHERE table_name = '" + viewName + "'"; + } else if ("oracle".equals(dbType)) { + sql = "SELECT * FROM ALL_VIEWS WHERE VIEW_NAME = '" + viewName + "'"; + } else if ("jc".equals(dbType)) { + sql = "SELECT * FROM sys.views WHERE viewname = '" + viewName + "'"; + } else { + retmap.put("status", "-1"); + retmap.put("message", "不支持的数据库类型,无法查询试图是否存在!"); + return retmap; + } + Map viewInfo = DbTools.getSqlToMap(sql); + //存在则删除 + if (viewInfo.size() > 0) { + sql = "DROP VIEW " + viewName; + boolean dropSign = DbTools.update(sql); + bs.writeLog("删除视图结果:" + dropSign); + } + + //收集考勤项目 + String kqxmSql = "select * from uf_jcl_kq_kqxm"; + List> kqxmList = DbTools.getSqlToList(kqxmSql); + //收集视图列头 + StringBuilder viewColumn = new StringBuilder("id,ygid,rq,fbid,bm,zw"); + //拼接视图内容sql + StringBuilder viewResourceSql = new StringBuilder("SELECT ta.id AS id,ta.ygid AS ygid,ta.rq AS rq,ta.fbid AS fbid,ta.bm AS bm,ta.zw AS zw"); + //考勤项目核算单位、id、名称 + String hsdw = ""; + String kqxmId = ""; + String mc = ""; + for (Map kqxmInfo : kqxmList) { + hsdw = Util.null2String(kqxmInfo.get("hsdw")); + kqxmId = Util.null2String(kqxmInfo.get("id")); + mc = Util.null2String(kqxmInfo.get("mc")); + int mcLength = mc.getBytes().length; + if ("oracle".equals(dbType) && mcLength > 28) { + mc = mc.substring(0,9); + } + if ("0".equals(hsdw)) { + viewResourceSql.append(", SUM(CASE WHEN ta.xm = ").append(kqxmId).append(" THEN ta.sc ELSE 0 END) AS \"").append(mc).append("_t\""); + viewResourceSql.append(", SUM(CASE WHEN ta.xm = ").append(kqxmId).append(" THEN ta.sc ELSE 0 END) AS \"").append(mc).append("_c\""); + viewColumn.append(",").append(mc).append("_t").append(",").append(mc).append("_c"); + } else if ("1".equals(hsdw)) { + viewResourceSql.append(", SUM(CASE WHEN ta.xm = ").append(kqxmId).append(" THEN ta.sc ELSE 0 END) AS \"").append(mc).append("_s\""); + viewResourceSql.append(", SUM(CASE WHEN ta.xm = ").append(kqxmId).append(" THEN ta.sc ELSE 0 END) AS \"").append(mc).append("_c\""); + viewColumn.append(",").append(mc).append("_s").append(",").append(mc).append("_c"); + } else if ("2".equals(hsdw)) { + viewResourceSql.append(", SUM(CASE WHEN ta.xm = ").append(kqxmId).append(" THEN ta.sc ELSE 0 END) AS \"").append(mc).append("_f\""); + viewResourceSql.append(", SUM(CASE WHEN ta.xm = ").append(kqxmId).append(" THEN ta.sc ELSE 0 END) AS \"").append(mc).append("_c\""); + viewColumn.append(",").append(mc).append("_f").append(",").append(mc).append("_c"); + } else { + viewResourceSql.append(", SUM(CASE WHEN ta.xm = ").append(kqxmId).append(" THEN ta.sc ELSE 0 END) AS \"").append(mc).append("_c\""); + viewColumn.append(",").append(mc).append("_c"); + } + } + //ifnull函数的适配 + String ifNullFunction = ""; + if("mysql".equals(dbType) || "dm".equals(dbType) || "jc".equals(dbType) || "st".equals(dbType)) { + ifNullFunction = "IFNULL"; + } else if ("oracle".equals(dbType)) { + ifNullFunction = "NVL"; + } else if ("sqlserver".equals(dbType)) { + ifNullFunction = "ISNULL"; + } else if ("postgresql".equals(dbType)) { + ifNullFunction = "COALESCE"; + } + //创建新的视图 + String createViewSql = "CREATE VIEW " + viewName; + createViewSql = createViewSql + " AS " + viewResourceSql.toString(); + createViewSql = createViewSql + " FROM (" + + "SELECT uf_jcl_kq_cqjg.id AS id,uf_jcl_kq_cqjg.fbid AS fbid,uf_jcl_kq_cqjg.bm AS bm,uf_jcl_kq_cqjg.zw AS zw," + + "uf_jcl_kq_cqjg.ygid AS ygid,uf_jcl_kq_cqjg.rq AS rq,uf_jcl_kq_cqjg.xm1 AS xm," + ifNullFunction + "(uf_jcl_kq_cqjg.sc1,0) AS sc " + + "FROM uf_jcl_kq_cqjg WHERE (uf_jcl_kq_cqjg.xm1 IS NOT NULL) UNION ALL " + + + "SELECT uf_jcl_kq_cqjg.id AS id,uf_jcl_kq_cqjg.fbid AS fbid,uf_jcl_kq_cqjg.bm AS bm,uf_jcl_kq_cqjg.zw AS zw," + + "uf_jcl_kq_cqjg.ygid AS ygid,uf_jcl_kq_cqjg.rq AS rq,uf_jcl_kq_cqjg.xm2 AS xm2," + ifNullFunction + "(uf_jcl_kq_cqjg.sc2,0) AS sc2 " + + "FROM uf_jcl_kq_cqjg WHERE (uf_jcl_kq_cqjg.xm2 IS NOT NULL) UNION ALL " + + + "SELECT uf_jcl_kq_cqjg.id AS id,uf_jcl_kq_cqjg.fbid AS fbid,uf_jcl_kq_cqjg.bm AS bm,uf_jcl_kq_cqjg.zw AS zw," + + "uf_jcl_kq_cqjg.ygid AS ygid,uf_jcl_kq_cqjg.rq AS rq,uf_jcl_kq_cqjg.xm3 AS xm3," + ifNullFunction + "(uf_jcl_kq_cqjg.sc3,0) AS sc3 " + + "FROM uf_jcl_kq_cqjg WHERE (uf_jcl_kq_cqjg.xm3 IS NOT NULL) UNION ALL " + + + "SELECT uf_jcl_kq_cqjg.id AS id,uf_jcl_kq_cqjg.fbid AS fbid,uf_jcl_kq_cqjg.bm AS bm,uf_jcl_kq_cqjg.zw AS zw," + + "uf_jcl_kq_cqjg.ygid AS ygid,uf_jcl_kq_cqjg.rq AS rq,uf_jcl_kq_cqjg.xm4 AS xm4," + ifNullFunction + "(uf_jcl_kq_cqjg.sc4,0) AS sc4 " + + "FROM uf_jcl_kq_cqjg WHERE (uf_jcl_kq_cqjg.xm4 IS NOT NULL) UNION ALL " + + + "SELECT uf_jcl_kq_cqjg.id AS id,uf_jcl_kq_cqjg.fbid AS fbid,uf_jcl_kq_cqjg.bm AS bm,uf_jcl_kq_cqjg.zw AS zw," + + "uf_jcl_kq_cqjg.ygid AS ygid,uf_jcl_kq_cqjg.rq AS rq,uf_jcl_kq_cqjg.xm5 AS xm5," + ifNullFunction + "(uf_jcl_kq_cqjg.sc5,0) AS sc5 " + + "FROM uf_jcl_kq_cqjg WHERE (uf_jcl_kq_cqjg.xm5 IS NOT NULL) UNION ALL " + + + "SELECT uf_jcl_kq_cqjg.id AS id,uf_jcl_kq_cqjg.fbid AS fbid,uf_jcl_kq_cqjg.bm AS bm,uf_jcl_kq_cqjg.zw AS zw," + + "uf_jcl_kq_cqjg.ygid AS ygid,uf_jcl_kq_cqjg.rq AS rq,uf_jcl_kq_cqjg.xm6 AS xm6," + ifNullFunction + "(uf_jcl_kq_cqjg.sc6,0) AS sc6 " + + "FROM uf_jcl_kq_cqjg WHERE (uf_jcl_kq_cqjg.xm6 IS NOT NULL) UNION ALL " + + + "SELECT uf_jcl_kq_cqjg.id AS id,uf_jcl_kq_cqjg.fbid AS fbid,uf_jcl_kq_cqjg.bm AS bm,uf_jcl_kq_cqjg.zw AS zw," + + "uf_jcl_kq_cqjg.ygid AS ygid,uf_jcl_kq_cqjg.rq AS rq,uf_jcl_kq_cqjg.xm7 AS xm7," + ifNullFunction + "(uf_jcl_kq_cqjg.sc7,0) AS sc7 " + + "FROM uf_jcl_kq_cqjg WHERE (uf_jcl_kq_cqjg.xm7 IS NOT NULL) UNION ALL " + + + "SELECT uf_jcl_kq_cqjg.id AS id,uf_jcl_kq_cqjg.fbid AS fbid,uf_jcl_kq_cqjg.bm AS bm,uf_jcl_kq_cqjg.zw AS zw," + + "uf_jcl_kq_cqjg.ygid AS ygid,uf_jcl_kq_cqjg.rq AS rq,uf_jcl_kq_cqjg.xm8 AS xm8," + ifNullFunction + "(uf_jcl_kq_cqjg.sc8,0) AS sc8 " + + "FROM uf_jcl_kq_cqjg WHERE (uf_jcl_kq_cqjg.xm8 IS NOT NULL) UNION ALL " + + + "SELECT uf_jcl_kq_cqjg.id AS id,uf_jcl_kq_cqjg.fbid AS fbid,uf_jcl_kq_cqjg.bm AS bm,uf_jcl_kq_cqjg.zw AS zw,uf_jcl_kq_cqjg.ygid AS ygid,uf_jcl_kq_cqjg.rq AS rq," + + "(CASE WHEN (uf_jcl_kq_cqjg.cqzt = 0) THEN '1' ELSE '5' END) AS cqzt," + + "(CASE WHEN (uf_jcl_kq_cqjg.cqzt = 0) THEN uf_jcl_kq_cqjg.cqsc ELSE 0 END) AS cqsc " + + "FROM uf_jcl_kq_cqjg UNION ALL " + + + "SELECT uf_jcl_kq_cqjg.id AS id,uf_jcl_kq_cqjg.fbid AS fbid,uf_jcl_kq_cqjg.bm AS bm,uf_jcl_kq_cqjg.zw AS zw,uf_jcl_kq_cqjg.ygid AS ygid,uf_jcl_kq_cqjg.rq AS rq, " + + "(CASE WHEN ((uf_jcl_kq_cqjg.rqlx = 0) OR (uf_jcl_kq_cqjg.rqlx = 4)) THEN '2' " + + "WHEN ((uf_jcl_kq_cqjg.rqlx = 2) OR (uf_jcl_kq_cqjg.rqlx = 3)) THEN '3' " + + "WHEN (uf_jcl_kq_cqjg.rqlx = 1) THEN '4' ELSE '0' END) " + + "AS rqlx, " + + "uf_jcl_kq_cqjg.cqsc AS cqsc " + + "FROM uf_jcl_kq_cqjg " + + ") ta GROUP BY ta.id,ta.ygid,ta.rq,ta.fbid,ta.bm,ta.zw"; + + boolean createSign = DbTools.update(createViewSql); + bs.writeLog("创建视图结果:" + createSign); + if (createSign) { + retmap.put("status", "1"); + retmap.put("message", "考勤日报相关视图刷新成功!"); + } else { + retmap.put("status", "-1"); + retmap.put("message", "考勤日报相关视图刷新失败!"); + bs.writeLog("创建视图sql:[===" + createViewSql + "===]"); + } + return retmap; + + } + private String getKqxmUnit(String hsdw) { if (hsdw.equals("0")) { return SystemEnv.getHtmlLabelName(518514, user.getLanguage()); //天 diff --git a/src/com/engine/attendance/workflow/web/AttendanceSummaryApi.java b/src/com/engine/attendance/attendanceanalysis/web/AttendanceSummaryApi.java similarity index 62% rename from src/com/engine/attendance/workflow/web/AttendanceSummaryApi.java rename to src/com/engine/attendance/attendanceanalysis/web/AttendanceSummaryApi.java index ad0f34a..620dabf 100644 --- a/src/com/engine/attendance/workflow/web/AttendanceSummaryApi.java +++ b/src/com/engine/attendance/attendanceanalysis/web/AttendanceSummaryApi.java @@ -1,22 +1,19 @@ -package com.engine.attendance.workflow.web; +package com.engine.attendance.attendanceanalysis.web; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; -import com.engine.attendance.workflow.service.AttendanceSummaryService; -import com.engine.attendance.workflow.service.BusinessTripsApplyService; -import com.engine.attendance.workflow.service.impl.AttendanceSummaryServiceImpl; -import com.engine.attendance.workflow.service.impl.BusinessTripsApplyServiceImpl; +import com.engine.attendance.attendanceanalysis.service.AttendanceSummaryService; +import com.engine.attendance.attendanceanalysis.service.impl.AttendanceSummaryServiceImpl; import com.engine.common.util.ParamUtil; +import com.engine.common.util.ResponseResult; import com.engine.common.util.ServiceUtil; -import weaver.general.Util; +import weaver.general.BaseBean; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.HashMap; @@ -28,7 +25,7 @@ import java.util.Map; * @Date: 2024/3/25 **/ public class AttendanceSummaryApi { - + BaseBean bs = new BaseBean(); private AttendanceSummaryService getAttendanceSummaryService(User user) { return ServiceUtil.getService(AttendanceSummaryServiceImpl.class,user); } @@ -80,4 +77,35 @@ public class AttendanceSummaryApi { apidatas = getAttendanceSummaryService(user).addAttendanceSummary(ParamUtil.request2Map(request)); return JSONObject.toJSONString(apidatas); } + + /** + * 导出出勤汇总报表 + * @param request + * @param response + * @return + */ + @POST + @Path("/exportExcel") + @Produces(MediaType.TEXT_PLAIN) + public String exportExcel(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser(request, response); + apidatas = getAttendanceSummaryService(user).exportCqSummaryReport(ParamUtil.request2Map(request), request, response); + } catch (Exception e) { + apidatas.put("status", "-1"); + bs.writeLog(e); + } + return JSONObject.toJSONString(apidatas); + } + + @GET + @Path("/refreshViewAttendanceDaily") + @Produces(MediaType.APPLICATION_JSON) + public String refreshViewAttendanceDaily(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map apidatas = new HashMap(); + User user = HrmUserVarify.getUser(request, response); + apidatas = getAttendanceSummaryService(user).refreshViewAttendanceDaily(); + return JSONObject.toJSONString(apidatas); + } } diff --git a/src/com/engine/attendance/workflow/cmd/GetCqSummarySearchConditionCmd.java b/src/com/engine/attendance/workflow/cmd/GetCqSummarySearchConditionCmd.java index 09c0459..c86aa30 100644 --- a/src/com/engine/attendance/workflow/cmd/GetCqSummarySearchConditionCmd.java +++ b/src/com/engine/attendance/workflow/cmd/GetCqSummarySearchConditionCmd.java @@ -165,7 +165,7 @@ public class GetCqSummarySearchConditionCmd extends AbstractCommonCommand> bcTimeRangeList = collectBcTimeRangeInfo(Util.null2String(map.get("bcbdxx"))); //遍历该出勤结果中班次、人员都关联的津贴项目 for(String allowanceId : allowanceIdsByBc) {