diff --git a/out/artifacts/hrm_attendance/hrm-attendance.jar b/out/artifacts/hrm_attendance/hrm-attendance.jar index 5b7a64f..614db46 100644 Binary files a/out/artifacts/hrm_attendance/hrm-attendance.jar and b/out/artifacts/hrm_attendance/hrm-attendance.jar differ diff --git a/src/com/api/attendance/persongroup/web/SchedulingResultsActionApi.java b/src/com/api/attendance/persongroup/web/SchedulingResultsActionApi.java new file mode 100644 index 0000000..9ddd498 --- /dev/null +++ b/src/com/api/attendance/persongroup/web/SchedulingResultsActionApi.java @@ -0,0 +1,13 @@ +package com.api.attendance.persongroup.web; + +import com.engine.attendance.persongroup.web.SchedulingResultsAction; +import lombok.extern.slf4j.Slf4j; + +import javax.ws.rs.Path; + +@Path("/attendance/schedulingresults") +@Slf4j +public class SchedulingResultsActionApi extends SchedulingResultsAction { + + +} diff --git a/src/com/engine/attendance/persongroup/cmd/GetDatatableCmd.java b/src/com/engine/attendance/persongroup/cmd/GetDatatableCmd.java new file mode 100644 index 0000000..d46bcaf --- /dev/null +++ b/src/com/engine/attendance/persongroup/cmd/GetDatatableCmd.java @@ -0,0 +1,89 @@ +package com.engine.attendance.persongroup.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.DbTools; +import com.engine.core.interceptor.CommandContext; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.icbc.api.internal.apache.http.M; +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSet; +import weaver.general.Util; + +import java.util.List; +import java.util.Map; + +@Slf4j +public class GetDatatableCmd extends AbstractCommonCommand> { + @Override + public BizLogContext getLogContext() { + return null; + } + public GetDatatableCmd(Map params){ + this.params=params; + } + + @Override + public Map execute(CommandContext commandContext) { + String tableName = Util.null2String(params.get("tableName")); + String startDate = Util.null2String(params.get("startDate")); + String endDate = Util.null2String(params.get("endDate")); + String pblx = Util.null2String(params.get("pblx")); + String pbdx = Util.null2String(params.get("pbdx")); + int total = Integer.valueOf(Util.null2String(params.get("total"))); + int current = Integer.valueOf(Util.null2String(params.get("current"))); + int pageSize = Integer.valueOf(Util.null2String(params.get("pageSize"))); + RecordSet rs = new RecordSet(); + Map resultMap = Maps.newHashMap(); + String sql = "select id from "+tableName +" where pbtj=0 "; + List param = Lists.newArrayList(); + + String conditions = ""; + if (!"".equals(startDate) && !"".equals(endDate)){ + conditions += " and bcrq >= ? and bcrq<= ?"; + param.add(startDate); + param.add(endDate); + } +// if (!"".equals(pblx)){ +// conditions += " and dxlx = ?"; +// param.add(pblx); +// } + if (!"".equals(pbdx)){ + conditions += " and dxlx = ?"; + param.add(pblx); + if ("0".equals(pblx)){ + //人员 + conditions += " and pbdxry = ?"; + + }else if ("1".equals(pblx)){ + //人员分组 + conditions += " and pbdxryfz = ?"; + + }else if ("2".equals(pblx)){ + //部门 + conditions += " and pbdxbm = ?"; + + }else if ("3".equals(pblx)){ + //分部 + conditions += " and pbdxfb = ?"; + } + param.add(pbdx); + } + int startindex = (current-1)*pageSize; + String dbType = rs.getDBType(); + if ("oracle".equals(dbType)){ + + }else { + sql = sql + conditions +" limit "+startindex+",1"; + String queryDatatablesql = "select a.id as `key`,b.lastname,a.* from "+tableName +" a left join hrmresource b on a.pbdxry=b.id where a.id>=("+sql+") "+conditions+" limit "+pageSize; + log.info("queryDatatablesql : {}",queryDatatablesql); + param.addAll(param); + log.info("param : {}",param); + List> dataTable = DbTools.getSqlToList(queryDatatablesql,param.toArray()); + resultMap.put("data",dataTable); + } + + return resultMap; + } +} diff --git a/src/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.java b/src/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.java new file mode 100644 index 0000000..c7a1126 --- /dev/null +++ b/src/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.java @@ -0,0 +1,75 @@ +package com.engine.attendance.persongroup.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.common.util.DbTools; +import com.engine.core.interceptor.CommandContext; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import weaver.conn.RecordSet; +import weaver.general.Util; +import java.util.List; +import java.util.Map; + +@Slf4j +public class GetDatatableCountCmd extends AbstractCommonCommand> { + @Override + public BizLogContext getLogContext() { + return null; + } + public GetDatatableCountCmd(Map params){ + this.params=params; + } + + @Override + public Map execute(CommandContext commandContext) { + String tableName = Util.null2String(params.get("tableName")); + String startDate = Util.null2String(params.get("startDate")); + String endDate = Util.null2String(params.get("endDate")); + String pblx = Util.null2String(params.get("pblx")); + String pbdx = Util.null2String(params.get("pbdx")); + + + String sql = "select count(0) total from "+tableName +" where pbtj=0 "; + List params = Lists.newArrayList(); + + String conditions = ""; + if (!"".equals(startDate) && !"".equals(endDate)){ + conditions += " and bcrq >= ? and bcrq<= ?"; + params.add(startDate); + params.add(endDate); + } +// if (!"".equals(pblx)){ +// conditions += " and dxlx = ?"; +// params.add(pblx); +// } + if (!"".equals(pbdx)){ + conditions += " and dxlx = ?"; + params.add(pblx); + if ("0".equals(pblx)){ + //人员 + conditions += " and pbdxry = ?"; + + }else if ("1".equals(pblx)){ + //人员分组 + conditions += " and pbdxryfz = ?"; + + }else if ("2".equals(pblx)){ + //部门 + conditions += " and pbdxbm = ?"; + + }else if ("3".equals(pblx)){ + //分部 + conditions += " and pbdxfb = ?"; + } + params.add(pbdx); + } + + sql = sql + conditions; + log.info("GetDatatableCountCmd sql :{}",sql); + log.info("params : [{}]",params); + Map dataMap = DbTools.getSqlToMap(sql,params.toArray()); + + return dataMap; + } +} diff --git a/src/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.java b/src/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.java new file mode 100644 index 0000000..d3143b2 --- /dev/null +++ b/src/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.java @@ -0,0 +1,158 @@ +package com.engine.attendance.persongroup.cmd; + +import com.engine.attendance.persongroup.commonutil.CommonUtil; +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; + +import com.engine.common.util.DateUtil; +import com.engine.common.util.DbTools; +import com.engine.core.interceptor.CommandContext; +import com.google.common.collect.Lists; + +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import lombok.extern.slf4j.Slf4j; +import weaver.general.Util; +import weaver.hrm.company.DepartmentComInfo; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * 当递归查询时获得表格数据 + */ +@Slf4j +public class GetDatatableRecurrenceCmd extends AbstractCommonCommand> { + + @Override + public BizLogContext getLogContext() { + return null; + } + public GetDatatableRecurrenceCmd(Map params){ + this.params=params; + } + + @Override + public Map execute(CommandContext commandContext) { + String tableName = Util.null2String(params.get("tableName")); + String startDate = Util.null2String(params.get("startDate")); + String endDate = Util.null2String(params.get("endDate")); + String pblx = Util.null2String(params.get("pblx")); + String pbdx = Util.null2String(params.get("pbdx")); + + String sql = "select a.id as `key`,b.lastname,a.* from "+tableName +" a left join hrmresource b on a.pbdxry=b.id where pbtj=0 "; + + String conditions = ""; + List Dateparam = Lists.newArrayList(); + if (!"".equals(startDate) && !"".equals(endDate)){ + conditions += " and bcrq >= ? and bcrq<= ?"; + Dateparam.add(startDate); + Dateparam.add(endDate); + } + Map resultMap = Maps.newHashMap(); + List> dataTableList = Lists.newArrayList(); + + try { + + if (!"".equals(pbdx)){ + if ("0".equals(pblx)){ + //人员递归查人员、人员分组、部门、分部 + String querySqlbyPbdx = sql +conditions + " and pbdxry = ?"; + List param = Lists.newArrayList(); + param.addAll(Dateparam); + param.add(pbdx); + log.info("递归查询人员-人员节点,sql:{},param:{}",querySqlbyPbdx,param); + List> dataList = DbTools.getSqlToList(querySqlbyPbdx,param.toArray()); + if (dataList.size() == 0){ + //查人员分组 + String currentTime = DateUtil.getCurrentDate(); + String queryryfz = "select a.mainid,a.empid,a.filters,a.bdate,a.edate from uf_ryqz_dt1 a,(select pbdxryfz from uf_pbjg where dxlx=1 group by pbdxryfz) b where a.mainid =b.pbdxryfz and a.bdate <= '"+currentTime+"'"; + List> personGroupData = DbTools.getSqlToList(queryryfz); + Set personnelGroupIds = CommonUtil.getPersonnelGroupingByPerson(personGroupData,pbdx); + querySqlbyPbdx = sql +conditions + " and pbdxryfz in (?)"; + log.info("递归查询人员-人员分组节点,sql:{},personnelGroupIds:{}",querySqlbyPbdx,personnelGroupIds); + if(personnelGroupIds.size() > 0){ + param.clear(); + param.addAll(Dateparam); + param.add(String.join(",",personnelGroupIds)); + dataList = DbTools.getSqlToList(querySqlbyPbdx,param.toArray()); + } + if (dataList.size() == 0){ + //查询人员部门 + String queryDepartmentidAndSubcompanyid = "select id,departmentid,subcompanyid1 from hrmresource where id =?"; + Map dataMap = DbTools.getSqlToMap(queryDepartmentidAndSubcompanyid,pbdx); + String pdeptids = ""; + pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(dataMap.get("departmentid")), pdeptids); + pdeptids = Util.null2String(dataMap.get("departmentid")) + pdeptids; + log.info("pdeptids : [{}]",pdeptids); + querySqlbyPbdx = sql + conditions + " and pbdxbm in (?)"; + log.info("递归查询人员-部门节点,sql:{},pdeptids:{}",querySqlbyPbdx,pdeptids); + param.clear(); + param.addAll(Dateparam); + param.add(pdeptids); + dataList = DbTools.getSqlToList(querySqlbyPbdx,param.toArray()); + if (dataList.size() == 0){ + //查询人员分部 + querySqlbyPbdx = sql + conditions + " and pbdxfb = ?"; + log.info("递归查询人员-分部节点,sql:{},pdeptids:{}",querySqlbyPbdx,dataMap.get("subcompanyid1")); + param.clear(); + param.addAll(Dateparam); + param.add(dataMap.get("subcompanyid1")); + dataList = DbTools.getSqlToList(querySqlbyPbdx,param.toArray()); + + } + } + } + dataTableList = dataList; + }else if ("1".equals(pblx)){ + List param = Lists.newArrayList(); + param.addAll(Dateparam); + //人员分组 + conditions += " and pbdxryfz = ?"; + sql +=conditions; + param.add(pbdx); + dataTableList = DbTools.getSqlToList(sql,param.toArray()); + + }else if ("2".equals(pblx)){ + List param = Lists.newArrayList(); + param.addAll(Dateparam); + //部门 + //部门递归查、部门、分部 + String querySqlbyPbdx = sql +conditions + " and pbdxbm = ?"; + param.add(pbdx); + dataTableList = DbTools.getSqlToList(querySqlbyPbdx,param.toArray()); + if (dataTableList.size() == 0){ + String querySubCompanySql = "select subcompanyid1 from hrmdepartment where id=?"; + Map departMentMap = DbTools.getSqlToMap(querySubCompanySql,pbdx); + querySqlbyPbdx = sql +conditions + " and pbdxfb = ?"; + log.info("递归查询部门-分部节点,sql:{},pdeptids:{}",querySqlbyPbdx,departMentMap.get("subcompanyid1")); + param.clear(); + param.addAll(Dateparam); + param.add(departMentMap.get("subcompanyid1")); + dataTableList = DbTools.getSqlToList(querySqlbyPbdx,param.toArray()); + } + + + }else if ("3".equals(pblx)){ + List param = Lists.newArrayList(); + param.addAll(Dateparam); + //分部 + conditions += " and pbdxfb = ?"; + sql +=conditions; + param.add(pbdx); + dataTableList = DbTools.getSqlToList(sql,param.toArray()); + } + + } + }catch (Exception e){ + log.error("catch error : {}",e); + } + resultMap.put("dataTableList",dataTableList); + log.info("dataTableList total size : {}",dataTableList.size()); + + return resultMap; + } + + +} diff --git a/src/com/engine/attendance/persongroup/commonutil/CommonUtil.java b/src/com/engine/attendance/persongroup/commonutil/CommonUtil.java index b56366a..3a81185 100644 --- a/src/com/engine/attendance/persongroup/commonutil/CommonUtil.java +++ b/src/com/engine/attendance/persongroup/commonutil/CommonUtil.java @@ -4,14 +4,12 @@ import com.engine.common.util.DateUtil; import com.engine.common.util.DbTools; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import lombok.extern.slf4j.Slf4j; import weaver.conn.RecordSet; import weaver.general.Util; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -67,7 +65,7 @@ public class CommonUtil { //规律排班明细表数据 - String sql = "select ksts,jsts,hxbz,bcmc from uf_glpb_dt1 where mainid=?"; + String sql = "select ksts,jsts,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?"; List> detailDataList = DbTools.getSqlToList(sql,id); //规律排班适用组织数据 sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?"; @@ -204,4 +202,88 @@ public class CommonUtil { } return result; } + + + /*** + * 获得人员是否在人员分组里 + * @param personnelGrouping 人员分组集合 + * @param userId 人员id + * @return 人员分组主键ID集合 + */ + public static Set getPersonnelGroupingByPerson(List> personnelGrouping,String userId){ + Map>> collect = personnelGrouping.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("mainid")))); + Set personnelGroupIds = Sets.newHashSet(); + log.info("getPersonnelGroupingByPerson collect : {}",collect); + for (Map.Entry>> e : collect.entrySet()){ + List> value = e.getValue(); + for (Map data :value ){ + String edate = Util.null2String(data.get("edate")); + if ("".equals(edate) || DateUtil.getBetWeenDays(edate) <=0){ + String empid = Util.null2String(data.get("empid")); + String filters = Util.null2String(data.get("filters")); + log.info(" empid : {},userId : {}",empid,userId); + if (empid.equals(userId)){ + personnelGroupIds.add(e.getKey()); + }else if (!"".equals(filters)){ + filters = filters.replace("and","and"); + filters = filters.replace("or","or"); + String sql = "select id from hrmresource where 1=1 and " +filters; + log.info("getPersonnelGroupingByPerson filter sql : {}",sql); + List> dataList = DbTools.getSqlToList(sql); + for (Map dataMap :dataList){ + String hrmId = Util.null2String(dataMap.get("id")); + if (hrmId.equals(userId)){ + personnelGroupIds.add(e.getKey()); + } + } + } + } + } + } + + + return personnelGroupIds; + } + + /** + * 获得人员分组集合 + * @return + */ + public static Map getPersonGroup(){ + String sql = "select id,name from uf_ryqz"; + return DbTools.getSqlToMapList(sql); + } + + /** + * 获得部门集合 + * @return + */ + public static Map getDepartMent(){ + String sql = "select id,departmentname name from hrmdepartment"; + return DbTools.getSqlToMapList(sql); + } + /** + * 获得分部集合 + * @return + */ + public static Map getSubCompany(){ + String sql = "select id,subcompanyname name from hrmsubcompany"; + return DbTools.getSqlToMapList(sql); + } + /** + * 获得班次信息集合 + * @return + */ + public static Map getClassesInformation(){ + String sql = "select id,mc name from uf_jcl_kq_bcxx"; + return DbTools.getSqlToMapList(sql); + } + /** + * 获得候选班次集合 + * @return + */ + public static Map getCandidateTeam(){ + String sql = "select id,mc name from uf_jcl_kq_hxbz"; + return DbTools.getSqlToMapList(sql); + } } diff --git a/src/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.java b/src/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.java index a96b71f..e24a514 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.java +++ b/src/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.java @@ -36,7 +36,7 @@ public class SchedulingJob extends BaseCronJob { @Override public void execute() { String currentDate = DateUtil.getCurrentDate(); - String sql = "select * from uf_glpb where edate > ? and bdate<=?"; + String sql = "select * from uf_jcl_kq_glpb where edate > ? and bdate<=?"; List> dataList = DbTools.getSqlToList(sql,currentDate,currentDate); log.info("dataList : [{}]",dataList); try { diff --git a/src/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.java b/src/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.java index 4b6c6cd..cdcd9af 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.java +++ b/src/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.java @@ -59,7 +59,7 @@ public class DayRegularScheduling implements RegularScheduling{ //规律排班明细表数据 - String sql = "select ksts,jsts,hxbz,bcmc from uf_glpb_dt1 where mainid=?"; + String sql = "select ksts,jsts,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?"; List> detailDataList = DbTools.getSqlToList(sql,id); //规律排班适用组织数据 sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?"; diff --git a/src/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.java b/src/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.java index 186af43..e123a51 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.java +++ b/src/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.java @@ -58,7 +58,7 @@ public class MonthRegularScheduling implements RegularScheduling{ RecordSet rs = new RecordSet(); //规律排班明细表数据 - String sql = "select ksr,jsr,hxbz,bcmc from uf_glpb_dt1 where mainid=?"; + String sql = "select ksr,jsr,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?"; List> detailDataList = DbTools.getSqlToList(sql,id); //规律排班适用组织数据 sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?"; diff --git a/src/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.java b/src/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.java index 68abe89..9412c20 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.java +++ b/src/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.java @@ -60,7 +60,7 @@ public class WeekRegularScheduling implements RegularScheduling{ //规律排班明细表数据 - String sql = "select ksxq,jsxq,hxbz,bcmc from uf_glpb_dt1 where mainid=?"; + String sql = "select ksxq,jsxq,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?"; List> detailDataList = DbTools.getSqlToList(sql,id); //规律排班适用组织数据 sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?"; diff --git a/src/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.java b/src/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.java index 037cb63..71aaf13 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.java +++ b/src/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.java @@ -58,7 +58,7 @@ public class YearRegularScheduling implements RegularScheduling{ RecordSet rs = new RecordSet(); //规律排班明细表数据 - String sql = "select ksrq,jsrq,hxbz,bcmc from uf_glpb_dt1 where mainid=?"; + String sql = "select ksrq,jsrq,hxbz,bcmc from uf_jcl_kq_glpb_dt1 where mainid=?"; List> detailDataList = DbTools.getSqlToList(sql,id); //规律排班适用组织数据 sql = "select dx,dxlx,aqjb from uf_syzz where modeid=? and dataid=?"; diff --git a/src/com/engine/attendance/persongroup/service/SchedulingResultsService.java b/src/com/engine/attendance/persongroup/service/SchedulingResultsService.java new file mode 100644 index 0000000..ea105f0 --- /dev/null +++ b/src/com/engine/attendance/persongroup/service/SchedulingResultsService.java @@ -0,0 +1,7 @@ +package com.engine.attendance.persongroup.service; + +import java.util.Map; + +public interface SchedulingResultsService { + Map queryDataTable(Map params); +} diff --git a/src/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.java b/src/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.java new file mode 100644 index 0000000..ea3eca9 --- /dev/null +++ b/src/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.java @@ -0,0 +1,116 @@ +package com.engine.attendance.persongroup.service.impl; + +import com.engine.attendance.persongroup.cmd.GetDatatableCmd; +import com.engine.attendance.persongroup.cmd.GetDatatableCountCmd; +import com.engine.attendance.persongroup.cmd.GetDatatableRecurrenceCmd; +import com.engine.attendance.persongroup.commonutil.CommonUtil; +import com.engine.attendance.persongroup.service.SchedulingResultsService; +import com.engine.core.impl.Service; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import weaver.general.Util; + +import java.util.List; +import java.util.Map; + + +@Slf4j +public class SchedulingResultsServiceImpl extends Service implements SchedulingResultsService { + private Map personGroupMap = CommonUtil.getPersonGroup(); + private Map departMentMap = CommonUtil.getDepartMent(); + private Map subCompanyMap = CommonUtil.getSubCompany(); + private Map classesInformationMap = CommonUtil.getClassesInformation(); + private Map candidateTeamMap = CommonUtil.getCandidateTeam(); + + @Override + public Map queryDataTable(Map params) { + String recurrence = Util.null2String(params.get("recurrence")); + Map resultMap = Maps.newHashMap(); + int current = Integer.valueOf(Util.null2String(params.get("current"))); + int pageSize = Integer.valueOf(Util.null2String(params.get("pageSize"))); + int startindex = (current-1)*pageSize; + int endindex = current*pageSize; +// Map personGroupMap = CommonUtil.getPersonGroup(); +// Map departMentMap = CommonUtil.getDepartMent(); +// Map subCompanyMap = CommonUtil.getSubCompany(); +// Map classesInformationMap = CommonUtil.getClassesInformation(); +// Map candidateTeamMap = CommonUtil.getCandidateTeam(); + + if ("1".equals(recurrence)){ + //递归查询方式 + Map result = commandExecutor.execute(new GetDatatableRecurrenceCmd(params)); + List> dataTableList = (List>)result.get("dataTableList"); + int total = dataTableList.size(); + resultMap.put("total",total); + if (endindex > total){ + endindex = total; + } + dataTableList = dataTableList.subList(startindex,endindex); + for (Map map:dataTableList){ + SetBrowSerName(map); + } + log.info("dataTableList : {}",dataTableList); + resultMap.put("data",dataTableList); + + }else { + //非递归查询方式 + Map result = commandExecutor.execute(new GetDatatableCountCmd(params)); + int total = Integer.valueOf(result.get("total").toString()); + params.put("total",total); + resultMap = commandExecutor.execute(new GetDatatableCmd(params)); + List> dataTable = (List>)resultMap.get("data"); + for (Map map :dataTable){ + SetBrowSerName(map); + + } + resultMap.put("total",total); + } + + return resultMap; + } + + /** + * 塞入 人员、人员分组、部门、分部、班次信息、候选班组浏览按钮显示值 + * @param map + */ + public void SetBrowSerName(Map map){ + log.info("personGroupMap :{},departMentMap:{},subCompanyMap:{},classesInformationMap:{},candidateTeamMap:{}" + ,personGroupMap.hashCode(),departMentMap.hashCode(),subCompanyMap.hashCode(),classesInformationMap.hashCode(),candidateTeamMap.hashCode()); + String dxlx = Util.null2String(map.get("dxlx")); + if (dxlx.equals("0")){ + //人员 + String lastname = Util.null2String(map.get("lastname")); + String pbdxry = Util.null2String(map.get("pbdxry")); + pbdxry = pbdxry +"-"+lastname; + map.put("pbdxry",pbdxry); + + }else if (dxlx.equals("1")){ + //人员分组 + String pbdxryfz = Util.null2String(map.get("pbdxryfz")); + pbdxryfz= pbdxryfz+"-"+personGroupMap.get(pbdxryfz); + map.put("pbdxryfz",pbdxryfz); + + }else if (dxlx.equals("2")){ + //部门 + String pbdxbm = Util.null2String(map.get("pbdxbm")); + pbdxbm= pbdxbm+"-"+departMentMap.get(pbdxbm); + map.put("pbdxbm",pbdxbm); + + }else if (dxlx.equals("3")){ + //分部 + String pbdxfb = Util.null2String(map.get("pbdxfb")); + pbdxfb= pbdxfb+"-"+subCompanyMap.get(pbdxfb); + map.put("pbdxfb",pbdxfb); + } + String bcxx = Util.null2String(map.get("bcxx")); + String hxbz = Util.null2String(map.get("hxbz")); + if (!"".equals(bcxx)){ + bcxx = bcxx +"-"+classesInformationMap.get(bcxx); + map.put("bcxx",bcxx); + } + if (!"".equals(hxbz)){ + hxbz = hxbz +"-"+candidateTeamMap.get(hxbz); + map.put("hxbz",hxbz); + } + } +} diff --git a/src/com/engine/attendance/persongroup/web/PersonGroupAction.java b/src/com/engine/attendance/persongroup/web/PersonGroupAction.java index 6817078..d0834f1 100644 --- a/src/com/engine/attendance/persongroup/web/PersonGroupAction.java +++ b/src/com/engine/attendance/persongroup/web/PersonGroupAction.java @@ -2,7 +2,6 @@ package com.engine.attendance.persongroup.web; import com.alibaba.fastjson.JSONObject; import com.cloudstore.dev.api.bean.SplitPageBean; -import com.cloudstore.dev.api.util.Util_TableMap; import com.engine.attendance.persongroup.service.PersonGroupService; import com.engine.attendance.persongroup.service.impl.PersonGroupServiceImpl; import com.engine.common.util.ApiReturnTools; @@ -20,7 +19,9 @@ import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; @Slf4j @@ -65,32 +66,5 @@ public class PersonGroupAction { } } - /** - * 获得排班结果 - * @return - */ - @GET - @Path("/getSchedulingData") - @Produces({"text/plain"}) - public String getSchedulingData(@Context HttpServletRequest request, @Context HttpServletResponse response) { - try { - Map paramMap = ParamUtil.request2Map(request); - Map dataMap = new HashMap<>(); - String dataKey = Util.null2String(paramMap.get("dataKey")); - - SplitPageBean bean = new SplitPageBean(request, dataKey, "RootMap", "operates", "head", "sql", "checkboxpopedom", "browser", "otherHeads"); - JSONObject sqlObj = bean.getSql(); - String sqlFrom = Util.null2String(sqlObj.getString("sqlform")); - String tableName = sqlFrom.substring(4, sqlFrom.indexOf("t1")).trim(); - - - - return ApiReturnTools.success(dataMap); - }catch (Exception e){ - log.error("execute fail,catch error: [{}]",e); - return ApiReturnTools.error("500","saveApplicableOrganization error"); - } - } - } diff --git a/src/com/engine/attendance/persongroup/web/SchedulingResultsAction.java b/src/com/engine/attendance/persongroup/web/SchedulingResultsAction.java new file mode 100644 index 0000000..9e65110 --- /dev/null +++ b/src/com/engine/attendance/persongroup/web/SchedulingResultsAction.java @@ -0,0 +1,32 @@ +package com.engine.attendance.persongroup.web; + +import com.engine.attendance.persongroup.service.SchedulingResultsService; +import com.engine.attendance.persongroup.service.impl.SchedulingResultsServiceImpl; +import com.engine.common.util.ApiReturnTools; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; + +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.core.Context; +import java.util.Map; + +public class SchedulingResultsAction { + + private SchedulingResultsService basicsetService = ServiceUtil.getService(SchedulingResultsServiceImpl.class); + /** + * 获得排班结果列表查询 + * @return + */ + @POST + @Path("/getSchedulingData") + @Produces({"text/plain"}) + public String getSchedulingData(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map paramMap = ParamUtil.request2Map(request); + Map dataMap = basicsetService.queryDataTable(paramMap); + return ApiReturnTools.success(dataMap); + } +} diff --git a/src/com/engine/common/util/DbTools.java b/src/com/engine/common/util/DbTools.java index b487581..159a08d 100644 --- a/src/com/engine/common/util/DbTools.java +++ b/src/com/engine/common/util/DbTools.java @@ -71,6 +71,21 @@ public class DbTools { } + public static Map getSqlToMapList(String sql,Object...value){ + RecordSet rs = thread.get(); + Map result = Maps.newHashMap(); + if (value == null || value.length <=0 || "".equals(value)){ + rs.executeQuery(sql); + }else { + rs.executeQuery(sql,value); + } + while (rs.next()){ + result.put(rs.getString("id"),rs.getString("name")); + } + return result; + } + + public static boolean update(String sql,Object...value){ RecordSet rs = thread.get(); diff --git a/src/com/engine/common/util/HttpRequestUtil.java b/src/com/engine/common/util/HttpRequestUtil.java deleted file mode 100644 index 4c2216a..0000000 --- a/src/com/engine/common/util/HttpRequestUtil.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.engine.common.util; - -import okhttp3.*; -import weaver.general.BaseBean; - -import java.io.IOException; -import java.util.Map; - -public class HttpRequestUtil extends BaseBean{ - private static int retryTimes = 2; - private static BaseBean bb = new BaseBean(); - - /*** - * - * @param dataJson - * @return - */ - public static String doPost(String url,String dataJson){ - - bb.writeLog("url:"+url); - bb.writeLog("dataJson:"+dataJson); - - String msgData = "" ; - - try { - OkHttpClient client = new OkHttpClient().newBuilder() - .addInterceptor(new OkhttpInterceptor(retryTimes)) - .retryOnConnectionFailure(false).build(); - MediaType mediaType = MediaType.parse("application/json"); - RequestBody body = RequestBody.create(mediaType, dataJson); - Request request = new Request.Builder() - .url(url) - .method("POST", body) - .addHeader("Content-Type", "application/json") - .build(); - - Response response = client.newCall(request).execute(); - - int code = response.code(); - String bodyMsg = response.body().string(); - bb.writeLog("response.code():"+code); - bb.writeLog("response.body():"+bodyMsg); - if(code == 200){ - msgData = bodyMsg; - return msgData; - } - } catch (IOException e) { - e.printStackTrace(); - bb.writeLog("HttpRequestUtil--e:"+e); - } - //bb.writeLog("msgData:"+msgData); - return msgData; - } - - /*** - * - * @param param - * @return - */ - public static String doGet(String url, Map param) { - - if (param.size() > 0) { - url = url + "?"; - for (Map.Entry e : param.entrySet()) { - url = url + e.getKey() + "=" + e.getValue() + "&"; - } - url = url.substring(0, url.length() - 1); - } - - return doGet(url); - } - - - public static String doGet(String url){ - - bb.writeLog("url:"+url); - - String msgData = "" ; - - try { - OkHttpClient client = new OkHttpClient().newBuilder() - .addInterceptor(new OkhttpInterceptor(retryTimes)) - .retryOnConnectionFailure(false).build(); - Request request = new Request.Builder() - .url(url) - .get() - .build(); - - Response response = client.newCall(request).execute(); - - int code = response.code(); - String bodyMsg = response.body().string(); - bb.writeLog("response.code():"+code); - bb.writeLog("response.body():"+bodyMsg); - if(code == 200){ - msgData = bodyMsg; - return msgData; - } - } catch (IOException e) { - e.printStackTrace(); - bb.writeLog("HttpRequestUtil--e:"+e); - } - bb.writeLog("msgData:"+msgData); - return msgData; - } - - - - public static class OkhttpInterceptor implements Interceptor { - // 最大重试次数 - private int maxRentry; - - - public OkhttpInterceptor(int maxRentry) { - this.maxRentry = maxRentry; - - } - - - @Override - public Response intercept(Chain chain) throws IOException { - /* 递归 2次下发请求,如果仍然失败 则返回 null ,但是 intercept must not return null. - * 返回 null 会报 IllegalStateException 异常 - * */ - return retry(chain, 0);//这个递归真的很舒服 - } - - Response retry(Chain chain, int retryCent) { - Request request = chain.request(); - Response response = null; - BaseBean bb = new BaseBean(); - try { -// System.out.println("第" + (retryCent + 1) + "次执行发http请求."); - response = chain.proceed(request); - } catch (Exception e) { - bb.writeLog("OkhttpInterceptor--e:"+e); - if (maxRentry > retryCent) { - return retry(chain, retryCent + 1); - } - } finally { - return response; - } - } - } - -} diff --git a/src/com/engine/common/util/PropBean.java b/src/com/engine/common/util/PropBean.java deleted file mode 100644 index 2ad6a80..0000000 --- a/src/com/engine/common/util/PropBean.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.engine.common.util; - -import org.apache.commons.lang.StringUtils; -import weaver.conn.RecordSet; -import weaver.general.BaseBean; -import weaver.general.Util; - -public class PropBean { - - public static BaseBean bb = new BaseBean(); - public static String active = Util.null2String(bb.getPropValue("developProp","active")).toUpperCase(); - - /*** - * - * @param pkey - * @return - */ - public static String getUfPropValue(String pkey) - { - BaseBean baseBean = new BaseBean(); - if(StringUtils.isEmpty(pkey)){ - return ""; - } - - if(StringUtils.isEmpty(active)){ - active = Util.null2String(baseBean.getPropValue("developProp","active")).toUpperCase(); - } - - //baseBean.writeLog("propbeanactive:"+active+" pkey:"+pkey+" "+active+"VALUE"); - String pvalue = ""; - try{ - RecordSet rs = new RecordSet(); - String sql = " SELECT DEVVALUE,TESTVALUE,PRODVALUE FROM UF_PROP WHERE PKEY = ?"; - rs.executeQuery(sql,new Object[]{pkey.trim()}); - - if(rs.next()){ - pvalue = Util.null2String(rs.getString(active+"VALUE")); - } -// baseBean.writeLog("pvalue:"+pvalue); - }catch (Exception e){ - e.printStackTrace(); - bb.writeLog("propbean-e:"+e); - } - return pvalue; - } - - - /*** - * - * @param pkey - * @return - */ - public String getUfPropValueStatic(String pkey) - { - BaseBean baseBean = new BaseBean(); - if(StringUtils.isEmpty(pkey)){ - return ""; - } - String active = Util.null2String(baseBean.getPropValue("developProp","active")).toUpperCase(); - String pvalue = ""; - try{ - RecordSet rs = new RecordSet(); - String sql = " SELECT DEVVALUE,TESTVALUE,PRODVALUE FROM UF_PROP WHERE PKEY = ?"; - rs.executeQuery(sql,new Object[]{pkey.trim()}); - if(rs.next()){ - pvalue = Util.null2String(rs.getString(active+"VALUE")); - } - baseBean.writeLog("pvalue:"+pvalue); - }catch (Exception e){ - e.printStackTrace(); - bb.writeLog("propbean-e:"+e); - } - return pvalue; - } - -} diff --git a/target/classes/com/api/attendance/persongroup/web/SchedulingResultsActionApi.class b/target/classes/com/api/attendance/persongroup/web/SchedulingResultsActionApi.class new file mode 100644 index 0000000..3483ada Binary files /dev/null and b/target/classes/com/api/attendance/persongroup/web/SchedulingResultsActionApi.class differ diff --git a/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCmd.class b/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCmd.class new file mode 100644 index 0000000..59c54b2 Binary files /dev/null and b/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCmd.class differ diff --git a/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.class b/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.class new file mode 100644 index 0000000..4d3fc92 Binary files /dev/null and b/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableCountCmd.class differ diff --git a/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.class b/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.class new file mode 100644 index 0000000..7f17904 Binary files /dev/null and b/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.class differ diff --git a/target/classes/com/engine/attendance/persongroup/commonutil/CommonUtil.class b/target/classes/com/engine/attendance/persongroup/commonutil/CommonUtil.class index b5701f6..cebef07 100644 Binary files a/target/classes/com/engine/attendance/persongroup/commonutil/CommonUtil.class and b/target/classes/com/engine/attendance/persongroup/commonutil/CommonUtil.class differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.class b/target/classes/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.class index 9df1fc9..edeca6d 100644 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.class and b/target/classes/com/engine/attendance/persongroup/job/scheduling/SchedulingJob.class differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.class b/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.class index 0136bb3..3a056a5 100644 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.class and b/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/DayRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.class b/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.class index ac52dde..26523b2 100644 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.class and b/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/MonthRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.class b/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.class index 97a9936..d494078 100644 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.class and b/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/WeekRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.class b/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.class index 79590e2..d6b83cf 100644 Binary files a/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.class and b/target/classes/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.class differ diff --git a/target/classes/com/engine/attendance/persongroup/service/SchedulingResultsService.class b/target/classes/com/engine/attendance/persongroup/service/SchedulingResultsService.class new file mode 100644 index 0000000..78089b1 Binary files /dev/null and b/target/classes/com/engine/attendance/persongroup/service/SchedulingResultsService.class differ diff --git a/target/classes/com/engine/attendance/persongroup/service/impl/PersonGroupServiceImpl.class b/target/classes/com/engine/attendance/persongroup/service/impl/PersonGroupServiceImpl.class index 93e3c6a..dfb71d4 100644 Binary files a/target/classes/com/engine/attendance/persongroup/service/impl/PersonGroupServiceImpl.class and b/target/classes/com/engine/attendance/persongroup/service/impl/PersonGroupServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.class b/target/classes/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.class new file mode 100644 index 0000000..c3acaf1 Binary files /dev/null and b/target/classes/com/engine/attendance/persongroup/service/impl/SchedulingResultsServiceImpl.class differ diff --git a/target/classes/com/engine/attendance/persongroup/web/PersonGroupAction.class b/target/classes/com/engine/attendance/persongroup/web/PersonGroupAction.class index 18a94cc..a8f7bba 100644 Binary files a/target/classes/com/engine/attendance/persongroup/web/PersonGroupAction.class and b/target/classes/com/engine/attendance/persongroup/web/PersonGroupAction.class differ diff --git a/target/classes/com/engine/attendance/persongroup/web/SchedulingResultsAction.class b/target/classes/com/engine/attendance/persongroup/web/SchedulingResultsAction.class new file mode 100644 index 0000000..08b0c36 Binary files /dev/null and b/target/classes/com/engine/attendance/persongroup/web/SchedulingResultsAction.class differ diff --git a/target/classes/com/engine/common/util/DbTools.class b/target/classes/com/engine/common/util/DbTools.class index 0946aaa..f329b2a 100644 Binary files a/target/classes/com/engine/common/util/DbTools.class and b/target/classes/com/engine/common/util/DbTools.class differ diff --git a/target/classes/com/engine/common/util/HttpRequestUtil$OkhttpInterceptor.class b/target/classes/com/engine/common/util/HttpRequestUtil$OkhttpInterceptor.class deleted file mode 100644 index 92868d1..0000000 Binary files a/target/classes/com/engine/common/util/HttpRequestUtil$OkhttpInterceptor.class and /dev/null differ diff --git a/target/classes/com/engine/common/util/HttpRequestUtil.class b/target/classes/com/engine/common/util/HttpRequestUtil.class deleted file mode 100644 index 4672e64..0000000 Binary files a/target/classes/com/engine/common/util/HttpRequestUtil.class and /dev/null differ diff --git a/target/classes/com/engine/common/util/PropBean.class b/target/classes/com/engine/common/util/PropBean.class deleted file mode 100644 index ac8fcf9..0000000 Binary files a/target/classes/com/engine/common/util/PropBean.class and /dev/null differ diff --git a/target/test-classes/Test.class b/target/test-classes/Test.class index d8fe3cc..0adeca3 100644 Binary files a/target/test-classes/Test.class and b/target/test-classes/Test.class differ diff --git a/test/Test.java b/test/Test.java index 7c7bc9c..c4c3a22 100644 --- a/test/Test.java +++ b/test/Test.java @@ -1,17 +1,27 @@ import com.engine.common.util.DateUtil; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import java.time.LocalDate; -import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; -import java.util.UUID; +import java.util.*; + public class Test { public static void main(String[] args) { - LocalDateTime beginDate = DateUtil.getTime("2023-01-05"); - LocalDateTime endDate = DateUtil.getTime("2023-09-20"); - System.out.println(endDate); - System.out.println(DateUtil.getTime(DateUtil.getCurrentDatePlusDay(7))); - System.out.println(endDate.compareTo(DateUtil.getTime(DateUtil.getCurrentDatePlusDay(7)))); +// String str = "where 1=1 and t1.formmodeid = 200 and t1.dgcx = '1'"; +// String[] strs = str.split("and"); +// for (String beanSqlWhere :strs){ +// if (beanSqlWhere.indexOf("t1.dgcx") >=0){ +// String[] conditions = beanSqlWhere.split("="); +// System.out.println(conditions[1].trim()); +// if (conditions[1].trim().equals("'1'")){ +// System.out.println(111); +// } +// } +// } + Set personnelGroupIds = new HashSet<>(); + System.out.println(DateUtil.getBetWeenDays("2023-09-22")); } public static int getDaysBetween(String date1, String date2) {