From 2f11bc7cbbc7cd10756851f0dfa00c8d6a201969 Mon Sep 17 00:00:00 2001 From: liuliang <401809302@qq.com> Date: Fri, 6 Oct 2023 14:10:01 +0800 Subject: [PATCH] liuliang --- .idea/.gitignore | 1 + .../hrm_attendance/hrm-attendance.jar | Bin 63428 -> 71492 bytes .../web/AttendancePlanActionApi.java | 13 ++ .../GetAttendanceItemsByPersonDataCmd.java | 121 ++++++++++++++++++ .../service/AttendancePlanService.java | 7 + .../impl/AttendancePlanServiceImpl.java | 15 +++ .../web/AttendancePlanAction.java | 33 +++++ .../cmd/GetDatatableRecurrenceCmd.java | 2 +- .../persongroup/commonutil/CommonUtil.java | 46 ++++--- .../tactics/YearRegularScheduling.java | 4 + .../service/ProcessSubmitCheckService.java | 4 + .../impl/ProcessSubmitCheckServiceImpl.java | 4 + .../workflow/web/ProcessSubmitCheck.java | 4 + .../web/AttendancePlanActionApi.class | Bin 0 -> 712 bytes .../GetAttendanceItemsByPersonDataCmd.class | Bin 0 -> 8352 bytes .../service/AttendancePlanService.class | Bin 0 -> 371 bytes .../impl/AttendancePlanServiceImpl.class | Bin 0 -> 1264 bytes .../web/AttendancePlanAction.class | Bin 0 -> 1801 bytes .../cmd/GetDatatableRecurrenceCmd.class | Bin 7144 -> 7182 bytes .../persongroup/commonutil/CommonUtil.class | Bin 12733 -> 12984 bytes .../tactics/YearRegularScheduling.class | Bin 7788 -> 7931 bytes target/test-classes/Test$1.class | Bin 0 -> 460 bytes target/test-classes/Test$2.class | Bin 0 -> 466 bytes target/test-classes/Test.class | Bin 1364 -> 2987 bytes test/Test.java | 23 ++-- 25 files changed, 243 insertions(+), 34 deletions(-) create mode 100644 src/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.java create mode 100644 src/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.java create mode 100644 src/com/engine/attendance/attendancePlan/service/AttendancePlanService.java create mode 100644 src/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.java create mode 100644 src/com/engine/attendance/attendancePlan/web/AttendancePlanAction.java create mode 100644 src/com/engine/attendance/workflow/service/ProcessSubmitCheckService.java create mode 100644 src/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.java create mode 100644 src/com/engine/attendance/workflow/web/ProcessSubmitCheck.java create mode 100644 target/classes/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.class create mode 100644 target/classes/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.class create mode 100644 target/classes/com/engine/attendance/attendancePlan/service/AttendancePlanService.class create mode 100644 target/classes/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.class create mode 100644 target/classes/com/engine/attendance/attendancePlan/web/AttendancePlanAction.class create mode 100644 target/test-classes/Test$1.class create mode 100644 target/test-classes/Test$2.class diff --git a/.idea/.gitignore b/.idea/.gitignore index 73f69e0..21fa33d 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -6,3 +6,4 @@ /dataSources.local.xml # Editor-based HTTP Client requests /httpRequests/ +/target diff --git a/out/artifacts/hrm_attendance/hrm-attendance.jar b/out/artifacts/hrm_attendance/hrm-attendance.jar index 614db460d63b7864061f1a9a6cb6d0d9c3ef81ab..8e079b737f72bd560c3c0a096e185036a39de8b9 100644 GIT binary patch delta 21800 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 diff --git a/src/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.java b/src/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.java new file mode 100644 index 0000000..cfa9f3c --- /dev/null +++ b/src/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.java @@ -0,0 +1,13 @@ +package com.api.attendance.attendancePlan.web; + + +import com.engine.attendance.attendancePlan.web.AttendancePlanAction; +import lombok.extern.slf4j.Slf4j; + +import javax.ws.rs.Path; + +@Path("/attendance/attendancePlan") +@Slf4j +public class AttendancePlanActionApi extends AttendancePlanAction { + +} diff --git a/src/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.java b/src/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.java new file mode 100644 index 0000000..8436efa --- /dev/null +++ b/src/com/engine/attendance/attendancePlan/cmd/GetAttendanceItemsByPersonDataCmd.java @@ -0,0 +1,121 @@ +package com.engine.attendance.attendancePlan.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.DbTools; +import com.engine.core.interceptor.CommandContext; +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; +import java.util.stream.Collectors; + +@Slf4j +public class GetAttendanceItemsByPersonDataCmd extends AbstractCommonCommand> { + + public GetAttendanceItemsByPersonDataCmd(Map params){ + this.params=params; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + String resourceId = Util.null2String(params.get("resourceId")); + String startDate = Util.null2String(params.get("startDate")); + String endDate = Util.null2String(params.get("endDate")); + String modeId = Util.null2String(params.get("modeId")); + Map resultMap = Maps.newHashMap(); + + String sql = "select dxlx,dataid,dx from uf_syzz where modeid=?"; + List> organizationList = DbTools.getSqlToList(sql,modeId); + sql = "select id,departmentid,subcompanyid1 from hrmresource where id =?"; + Map departMentMap = DbTools.getSqlToMap(sql,resourceId); + Set dataIds = Sets.newHashSet(); + Map>> organizationListGroupBydxlx = organizationList.stream().collect(Collectors.groupingBy(e ->e.get("dxlx").toString())); + //对象类型为人员 + List> personOrganizationList = organizationListGroupBydxlx.get("0"); + //对象类型为人员组织 + List> personGroupOrganizationList = organizationListGroupBydxlx.get("1"); + //对象类型为部门 + List> departmentOrganizationList = organizationListGroupBydxlx.get("2"); + //对象类型为分部 + List> subCompanyOrganizationList = organizationListGroupBydxlx.get("3"); + if (personOrganizationList != null){ + for (Map personOrganization :personOrganizationList){ + String dx = Util.null2String(personOrganization.get("dx")); + String ids = dx.split("-")[0]; + if (ids.equals(resourceId)){ + dataIds.add(Util.null2String(personOrganization.get("dataid"))); + } + } + } + try { + if (departmentOrganizationList != null){ + String deptid = Util.null2String(departMentMap.get("departmentid")); + String pdeptids = ""; + pdeptids = new DepartmentComInfo().getAllParentDepartId(Util.null2String(departMentMap.get("departmentid")), pdeptids); + pdeptids = deptid + pdeptids; + log.info("pdeptids : [{}]",pdeptids); + for (Map departmentOrganization :departmentOrganizationList){ + String dx = Util.null2String(departmentOrganization.get("dx")); + String ids = dx.split("-")[0]; + for (String pdeptid : pdeptids.split(",")){ + if (pdeptid.equals(ids)){ + dataIds.add(Util.null2String(departmentOrganization.get("dataid"))); + } + } + } + } + }catch (Exception e){ + log.error("catch error :{}",e); + } + if (subCompanyOrganizationList != null){ + String subCompanyId = Util.null2String(departMentMap.get("subcompanyid1")); + for (Map subCompanyOrganization :subCompanyOrganizationList){ + String dx = Util.null2String(subCompanyOrganization.get("dx")); + String ids = dx.split("-")[0]; + if (ids.equals(subCompanyId)){ + dataIds.add(Util.null2String(subCompanyOrganization.get("dataid"))); + } + } + } + if (personGroupOrganizationList != null){ + Set personGroupIds = personGroupOrganizationList.stream().map(e -> Util.null2String(e.get("dx")).split("-")[0]).collect(Collectors.toSet()); + sql = "select mainid,empid,filters,bdate,edate from uf_ryqz_dt1 where mainid in ("+String.join(",",personGroupIds)+")"; + log.info("query personGroupData : {}",sql); + List> personGroupData = DbTools.getSqlToList(sql); + Set personnelGroupIds = CommonUtil.getPersonnelGroupingByPerson(personGroupData,resourceId,startDate,endDate); + log.info("personnelGroupIds : {}",personnelGroupIds); + for (Map personGroupOrganization :personGroupOrganizationList){ + String personnelGroupId = Util.null2String(personGroupOrganization.get("dx")).split("-")[0]; + if (personnelGroupIds.contains(personnelGroupId)){ + dataIds.add(Util.null2String(personGroupOrganization.get("dataid"))); + } + } + } + + sql = "select id `key`,mc kqxm from uf_jcl_kq_kqxm where tyxm=1"; + List> attendanceItems = DbTools.getSqlToList(sql); + + log.info("dataIds : {}",dataIds); + sql = "select b.id `key`,b.mc kqxm,c.mc famc from uf_jcl_kq_kqfa_dt1 a left join uf_jcl_kq_kqxm b on a.kqxm=b.id left join uf_jcl_kq_kqfa c on a.mainid=c.id where mainid in ("+String.join(",",dataIds)+")"; + if (dataIds.size() > 0){ + log.info("query attendanceItems sql : {}",sql); + attendanceItems.addAll(DbTools.getSqlToList(sql)); + } + resultMap.put("data",attendanceItems); + resultMap.put("total",attendanceItems.size()); + + return resultMap; + } +} diff --git a/src/com/engine/attendance/attendancePlan/service/AttendancePlanService.java b/src/com/engine/attendance/attendancePlan/service/AttendancePlanService.java new file mode 100644 index 0000000..69a6c85 --- /dev/null +++ b/src/com/engine/attendance/attendancePlan/service/AttendancePlanService.java @@ -0,0 +1,7 @@ +package com.engine.attendance.attendancePlan.service; + +import java.util.Map; + +public interface AttendancePlanService { + Map getAttendanceItemsByPerson(Map params); +} diff --git a/src/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.java b/src/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.java new file mode 100644 index 0000000..6784870 --- /dev/null +++ b/src/com/engine/attendance/attendancePlan/service/impl/AttendancePlanServiceImpl.java @@ -0,0 +1,15 @@ +package com.engine.attendance.attendancePlan.service.impl; + +import com.engine.attendance.attendancePlan.cmd.GetAttendanceItemsByPersonDataCmd; +import com.engine.attendance.attendancePlan.service.AttendancePlanService; +import com.engine.core.impl.Service; + +import java.util.Map; + +public class AttendancePlanServiceImpl extends Service implements AttendancePlanService { + @Override + public Map getAttendanceItemsByPerson(Map params) { + Map result = commandExecutor.execute(new GetAttendanceItemsByPersonDataCmd(params)); + return result; + } +} diff --git a/src/com/engine/attendance/attendancePlan/web/AttendancePlanAction.java b/src/com/engine/attendance/attendancePlan/web/AttendancePlanAction.java new file mode 100644 index 0000000..9a9b0a9 --- /dev/null +++ b/src/com/engine/attendance/attendancePlan/web/AttendancePlanAction.java @@ -0,0 +1,33 @@ +package com.engine.attendance.attendancePlan.web; + +import com.engine.attendance.attendancePlan.service.AttendancePlanService; +import com.engine.attendance.attendancePlan.service.impl.AttendancePlanServiceImpl; +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 AttendancePlanAction { + private AttendancePlanService basicsetService = ServiceUtil.getService(AttendancePlanServiceImpl.class); + /** + * 根据人员查询考勤项目 + * @return + */ + @POST + @Path("/getAttendanceItemsByPerson") + @Produces({"text/plain"}) + public String getAttendanceItemsByPerson(@Context HttpServletRequest request, @Context HttpServletResponse response) { + Map paramMap = ParamUtil.request2Map(request); + Map dataMap = basicsetService.getAttendanceItemsByPerson(paramMap); + return ApiReturnTools.success(dataMap); + } +} diff --git a/src/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.java b/src/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.java index d3143b2..ed5a6e6 100644 --- a/src/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.java +++ b/src/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.java @@ -69,7 +69,7 @@ public class GetDatatableRecurrenceCmd extends AbstractCommonCommand> personGroupData = DbTools.getSqlToList(queryryfz); - Set personnelGroupIds = CommonUtil.getPersonnelGroupingByPerson(personGroupData,pbdx); + Set personnelGroupIds = CommonUtil.getPersonnelGroupingByPerson(personGroupData,pbdx,null,null); querySqlbyPbdx = sql +conditions + " and pbdxryfz in (?)"; log.info("递归查询人员-人员分组节点,sql:{},personnelGroupIds:{}",querySqlbyPbdx,personnelGroupIds); if(personnelGroupIds.size() > 0){ diff --git a/src/com/engine/attendance/persongroup/commonutil/CommonUtil.java b/src/com/engine/attendance/persongroup/commonutil/CommonUtil.java index 3a81185..7690bec 100644 --- a/src/com/engine/attendance/persongroup/commonutil/CommonUtil.java +++ b/src/com/engine/attendance/persongroup/commonutil/CommonUtil.java @@ -210,31 +210,41 @@ public class CommonUtil { * @param userId 人员id * @return 人员分组主键ID集合 */ - public static Set getPersonnelGroupingByPerson(List> personnelGrouping,String userId){ + public static Set getPersonnelGroupingByPerson(List> personnelGrouping,String userId,String startDate,String endDate){ Map>> collect = personnelGrouping.stream().collect(Collectors.groupingBy(e -> Util.null2String(e.get("mainid")))); Set personnelGroupIds = Sets.newHashSet(); log.info("getPersonnelGroupingByPerson collect : {}",collect); + if (userId == null || "".equals(userId)){ + return personnelGroupIds; + } 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()); - } + String bdate = Util.null2String(data.get("bdate")); + if (!"".equals(startDate) && startDate != null){ + if ((!"".equals(edate) && DateUtil.getBetWeenDays(edate,startDate) >0) || DateUtil.getBetWeenDays(bdate,endDate) < 0){ + continue; + } + } + if (!"".equals(edate) && DateUtil.getBetWeenDays(edate) >0){ + continue; + } + 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()); } } } 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 71aaf13..bfe63ad 100644 --- a/src/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.java +++ b/src/com/engine/attendance/persongroup/job/scheduling/tactics/YearRegularScheduling.java @@ -92,6 +92,10 @@ public class YearRegularScheduling implements RegularScheduling{ dataMap.put("bcrq",DateUtil.getCurrentDatePlusDay(count)); LocalDateTime beginDate = DateUtil.getTime(leaveDay.getYear()+"-"+ksrq); LocalDateTime endDate = DateUtil.getTime(leaveDay.getYear()+"-"+jsrq); + if (DateUtil.getBetWeenDays(leaveDay.getYear()+"-"+ksrq,leaveDay.getYear()+"-"+jsrq) <0){ + beginDate = DateUtil.getTime(leaveDay.getYear()+"-"+ksrq); + endDate = DateUtil.getTime((leaveDay.getYear()+1)+"-"+jsrq); + } if (endDate.compareTo(leaveDay) >=0 && beginDate.compareTo(leaveDay) <=0){ String dateTime =DateUtil.getCurrentDatePlusDay(count); log.info("dateTime :{},count: {},map : {}",dateTime,count,map); diff --git a/src/com/engine/attendance/workflow/service/ProcessSubmitCheckService.java b/src/com/engine/attendance/workflow/service/ProcessSubmitCheckService.java new file mode 100644 index 0000000..f97f95b --- /dev/null +++ b/src/com/engine/attendance/workflow/service/ProcessSubmitCheckService.java @@ -0,0 +1,4 @@ +package com.engine.attendance.workflow.service; + +public interface ProcessSubmitCheckService { +} diff --git a/src/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.java b/src/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.java new file mode 100644 index 0000000..45c06d7 --- /dev/null +++ b/src/com/engine/attendance/workflow/service/impl/ProcessSubmitCheckServiceImpl.java @@ -0,0 +1,4 @@ +package com.engine.attendance.workflow.service.impl; + +public interface ProcessSubmitCheckServiceImpl { +} diff --git a/src/com/engine/attendance/workflow/web/ProcessSubmitCheck.java b/src/com/engine/attendance/workflow/web/ProcessSubmitCheck.java new file mode 100644 index 0000000..c67b502 --- /dev/null +++ b/src/com/engine/attendance/workflow/web/ProcessSubmitCheck.java @@ -0,0 +1,4 @@ +package com.engine.attendance.workflow.web; + +public class ProcessSubmitCheck { +} diff --git a/target/classes/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.class b/target/classes/com/api/attendance/attendancePlan/web/AttendancePlanActionApi.class new file mode 100644 index 0000000000000000000000000000000000000000..c9ba7e911222e6e297bf1162caa5144955c52b9e GIT binary patch literal 712 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/engine/attendance/attendancePlan/web/AttendancePlanAction.class b/target/classes/com/engine/attendance/attendancePlan/web/AttendancePlanAction.class new file mode 100644 index 0000000000000000000000000000000000000000..1ba19d61984fd31c53ef7a654fa4c21b439f48dc GIT binary patch literal 1801 zcmb7E+fvj(5IwUj1eaB0MHEynD#}F|FW_wvT(B%HQ7J%Pe3}hYFjO{KGZTc5@L#k_ zOZ36=*^jd9Ng`~Z5PZm_r!QxEx=+uq-`{@#m_Vg~0!AE+7H|V&4#rR51b6{AajOk^ z+%Dh_CLByUxXaL96e^vNyqqyJ+pXafO_OsM=dO2G*e6o%_Z;v~m0w1zT)WH>s<^l*x*i%`^F zin^_{y%~>;@;E7M8mq#H*w&S;_;&qo)hDw-QwML;pm|;0kgh3D6Lj}tdZV*a77x)&&!Yu_+=*p+ca z3@`p`WK^y0?IUbDH_yr9;9e2;@ql6WzfiL|rhrAXq3GaY5oJsj(TPV6ri+-tV}?h^ zfNn$PV6AGr;ydgSLX{o=dg5g%e?__4?JfSsBQ3i$D5*I8D zq2Bao?0cugZBEW;ONZ`u%=r694^c9C=>Rv3O@Er-uIix6;34T$>S|G%DD;wVie|@gC?H`3g2t%I%=(C-Ps={3&)l zO>2Q%fHU;yccO!&B85@_N~E*Eoj8l880-UiHk0n$=nh(5jeJJ)*f%&iJj{3JchLHg zOii$mr|1t{BIjNL>Wg6~lF$^EK+r{>J?b3JqdSH!p$8WzwgWA=NK&3KKz{aEYwO*$ p^^&cRY}UJ<{sV+`S>p<>TH!62#vrbd;iRp{brSxrLnP-g{0Bw%12q5u literal 0 HcmV?d00001 diff --git a/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.class b/target/classes/com/engine/attendance/persongroup/cmd/GetDatatableRecurrenceCmd.class index 7f17904654d02f3e2d6e756c0dfb17f0e240ffe2..c68510005a5a7171969ef40b9235e115a15a89c7 100644 GIT binary patch delta 766 zcmX|;Nk|n?6o$WZ@3k_YK6{#C(E!;d$X24XkQTXUGOhHPQ)z0NLk>AU>t&ivq{efo zh=PJ>5e*s{6cjC51l6LQ3!$heS`-yT5!6W^?=CJs_uPBV|NZx4#$e{1mtOIQUU^rA zZkm|TpLpNoXYW@NeS#>Gz+Df$^F4{V=Sxb7x{vRISsA*Wuv;F7q7&B{k;%-&d}~`= zTWC1BD_G1XX=k(avqc8kDx++ZE9A&6w#y^(H9Ad<>5c`nJ6P)dSK%Y4en zCsAg^qEsxFH8RCsRbI)KOO&gMms~kV1^ZYe#WFx8RrvTIf2r20htKkx{aTHcrJ7!i zsyHRinLYC;MiaGqFV0Q`webNR=T+v1;c^dSvu$FPCHzF4d#Iyccl};+$wQZ_1{x8( zZk&VK(6HQ{)aIpF(p)FasvKFah89&(Ud@n~*bdjza7a_R_7e$N894M!9$hp$W*?g~hX(cpA|FV*T zf|fy|WKaYyS_pv=ZCnUVP*DUGL~R;Q`gnJ7`8em^bHCqrFXVq*KQ`l+b>4G-j`t@J zJCPN5YvNB4LmIfdUR?52!gx~JvY1JdZkTNEWpb4~@m8m-ov2MIv$n%^dz0w{;VQOB z4_jr3ZE}u6@z^f6D3W^=%OgtVDLZ7EoiacNa z8@b>rx#$|W%YPsPfBZ8KquTKuY8y4K%V;s$`fZnn~il{H8^_K0eDYTD7}GGBv%usuGpBXujrC zj1KncxkNh_*1`MrIlnSLj-(BU94m4!D zVI5wBWsU2jQ{P%gd*rM4pmLQw-1 V3kJNIj6CZj*?W_b?d4{E`Uf#{rc(d_ diff --git a/target/classes/com/engine/attendance/persongroup/commonutil/CommonUtil.class b/target/classes/com/engine/attendance/persongroup/commonutil/CommonUtil.class index cebef071e5534d3ee3ca023675c72dab9ffe06a3..07f8f933988fdc78a1b70d8439000bddd90f1cf8 100644 GIT binary patch delta 2517 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 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 d6b83cf0a8fd27933ff8fddce2e42697ce06b257..b5b77e03ddc509616a1daecab356026a1657a019 100644 GIT binary patch delta 1013 zcmZvaS!`5g6vuzx_nnz(L29Y9^gj? zRw_~`OSvr~wu(wDuF%%h5)vC9e9*@}5KK(;0ev8SA#q6tw^Q2m!I<3K{Bq8@IsfnX z-RTEzJb2-3AY9mxXxvhlh;MCbOtrNp1+$OM{_n+uSzAV}eVByZ!dAP7I-4PBhuCIE zskc*Xw?DAM{>UynO{2}R+XZQIMWkE_&F(H*+!|V44Q=je+TCV4Tr-_6!(MlYv^zt_ zeN5JUL6`fA{q8%u-4zbFs~mLK>2Wv69+nWjQp6D{=cugUxUA!ZtjCv)49H8oDLXkO z9h{bK2BnW7d7F1-m@_iUdos!U@-1iOG9St{&dINQDu3{qIv|q-rK8M3-Y3TLYGpAo$?N^Ddo|wM)oV^la^k(l@`z=SzcFK z$VqADfYL2|AW7a(TBLqn;2=E|a6z8sP*#h#GAT72Rttq(mMVIc7IRI?IHFW!oCG+k zsc$nuu^iKLhE2ZvhvOPBVhUW2KAnqlLJyc?;hbK7M(<6#{=D6OD(3w4tG^jnHJ$Y1 z&57w(F|$$p`6&K;6n{R-fJT{J>+9O>dcXG&_1Bj?8z0RAQ&;#7#! P`uL&Jk4(KkQhMoM%ysN8 delta 916 zcmZXRO-z(m6o#LB&t(892p-+U;KU z+YS!e936I)Lw1}_dzEhcJ!yNJjJ?ZYdyiiGh(7zAtX-gAO2|n)1M(h&vYBDoN?tx? zM0Rmpl8j24F&W^LjB#4VIU`f#&&o9Cuhz`lS&q<8oq238 zkyENSEmFgPRztH^S~#jVqHnfEl9cLxLxWm1L|vL8ty*F(#jui)Z*;pjrs&w=c93U3 zMKrq)8PT%{d)<1zP%5Uw)pA^^gnl)0LaCG?w}Mfn6{_-I#+1sKkmsCKdW-Awgi}i8 z{3H)K%^50~kq4aBvz5%tUB09{PbCjzhI1;Uioax%uas69krSNP)T>QIM!2AJt}&%D z%(w;&OoimQsD0I3(g8D+E$Q{kdi|natrcik@>fuQi>?ZUOJ24YRLo))zZ}IcNAb&1 zE^CyNnOk`P#Zl-9m%%=VirQDdwtv;3w*Cnw0;z{@4EiL|e|Z diff --git a/target/test-classes/Test$1.class b/target/test-classes/Test$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ee5d063b22fcb316d29bffec8f1bb122eed4f471 GIT binary patch literal 460 zcmZWlyG{Z@6g|TNyR0h+D!#R`01`zL3KEPB(P*-00l~s*fC&s)cF8`Be_`w_ENv}p zG@Cwtd1DgRIIDmV2GbcTl%LA zN-p1Ih*q7BU`UzL7FWTbCENyYS)^o4r_HSmHu+Q%}4LGygmg7mgTN8fI>8RK=u!U^{Dl~>j=bj;1IvBq^ z|2({Yk4EFiCj&d!rG=->8PZ{=V&F@wc)`71jSp%4&?FdeX)|PVx8@{dal2cr`!0>E zgs)VF0j0{hf9`dwFWP=(Udhi(IHDhn)4u|Y4sA@BAXbJlQIdrZutFx1QQi@~c_SwR jo$mP5#R73-#tkH?QjnUYmXIclB7CfMXSz@Dz~MV|B-&TB^?I+)HH=%Fu3CgO4VXT zIPTV7oHJ-aTBrB@>C(K~H^#i_xOSvM?4n$41MTUH~46&nnBy!uM z=iBec{^;)h>uoT6?+(_r=Hi^qVDFWne;S;UAkkCt_v`FG&fe0PM!k2G-z!frB`t zW57TH2O4o0M|2!DP!}$arKmdGh?6*F;4~gkvj=r#8Zd%0^*C$b93C=o9v2K;#KR4E z1dkg0JZ9i=hiA(j!EA25ImX2`^=Ah$9Z@?C%k}PSc>$e=s->)Ij*>zS! za=^_=4NXIqBTtqKqtY7@qc$a}AvY`Rv%<5~Iua)RF-!Rv8j&TxkJbfYIT~6!FAj~1 z36ZvilTT-S&vNp8fp_8Msozp%TSI$MdL`F6=DFqKDK9S^>#FcA*BP=(zJ}(|W7)Ut zw36_&r7?rS9Q`)MbTU$@v{s^?F3ur87E@L3`eW;1QH+*x{Gmc1IW;;ivwq)x{%hD2 zv*e*wES1*Myz~!?>Cz$TPfAISwsyuGMiecUbPZ~#%?V%bQW;ppX|&m^p`qjpk0H#IMA}pi3tgYBc8JP_z>ome`^&niCx=fgL*;RRk~Kn}qarRXbe^N+p0b zuc*PuxMeRZk6Nm38dPcQP%0+YVZDyaCTtW~G-{(`mk!5-i{hN1*TfZg%=aPJ^-I1d zio?<$b91GpI+U8>b0{~X&%^{KbxfI<##J3pn0OLTnRpt{FqQ>COo)zWO+1I^HE2CL zUNG?@UefWhiC6Hdj@L}QjyH6?Y2q!sZQ>ogtK&Tr@8bgvHMuDrADZ|G^zyNZPw*+d zY&Y>4K4-D300?v;D`8z|Sf6zZ>AdUaZJFk@;5r;^n>7=ZE-Te^?$Ws4~Y=6P?tv=%#vGf`nr*X@g34}`qB z9!ahBUFKWEx(bMqk9kFP5u$8p*cr#NNHbpZ5gQfx&POc_sraDg-uvSDJi<1u+sx$p6j@0_`ERU!w1i2SUs`U zR7FqaW^}GY?u$TFIvt6;M-<&+vx_Y)ygEU{9v1!>`;zYtI{uLlN&B zOeOm?AE-$wCZw0nOFos1-b$&UP2vToA?Ib zo46MwWMjZ=5QgPUxR=?}gI3M9C@wJ+*W;~hEG(>a{HUH}*S%b3K!3+m894|$>T%)Z zY+33EHRB~0L5~$-h2aRF(YX5m-wcnuy>0x`MV<$QZD%aLVLE=&uz3+7)#70rxV;|k zU}IaupIJZ>)W&*#H*l5asBx_Az5(qwPHLzM{xVZS0~`4@Lj`O?2UiW)j4hOG;QR)E z&Lubw&Y)&!+wVx6zk%c|YHM(gt2(aqXf=y^4L50wSr|2#LE|jU8vKbR!`HAh)zmYC z=IdCd03-qcZG-?UA=;%#p^3*eqaVv~oGS%tLwGQ@qLZs6j-U(Ogw;=*ZRlYb+bM75 z81C(u-%C^0fSuSC1u;cW>a4cz8Kj1{@pJMTT6(r$$MQYN*5nLU{KDOkmK41KD^N?% z23BD?RtIQyQ$i2u#ho10Y&U1T4b;60chlM+{ym%}Xj6y1xChB*L)CnQVjp!B*7n6s=0FzK*s;@2?ccv(g;PN(%$t$NdEM2U_=GEyuPfB%q!%^;eH?@dLgi+~ZuS Mj1F?=1n$Sszd2za*Z=?k delta 649 zcmXX?O-~b16g{sqo#{NsmR4FmMEUZgEtDw*L_|fQB87sBVhqcXywsX9HSJ(@)xB|J z8h?du!~_~mTpHurg$sX+@l5M1?mhRsbI*BiJ`DYm8$bVk`37JSk0j0`VqrFI^i^#0262c8>j8-Pv+m&nn6{v1;Qs?g+?2zOazXujC2^6L)Q_ z;hu^6HrBCWqG;m*HcdRVv4xV2ZS0sR+t|gPfF8sM4A8vuM~iiSgy&1+hm9jgdDWVy z9Kxf9*N-i_zIx1jfoN6v>&kzklvi|Lw*->ua_@R|*Q+`ezghFDtC><~->0!-f)L`YMvs(85ZiqLE?|(8g(OmBg5{@Fhu8c;Uik1cyquDMZyE80%C$MI7r;y8fO7G&_N1pbdkbq7+hA{VcB*uCBiC**~DO!-3 hU=PqFkszDI6sEZ@`MN7a8g~p_#Wh+9T&FgK^gpwqVF&;K diff --git a/test/Test.java b/test/Test.java index c4c3a22..ce6e9a1 100644 --- a/test/Test.java +++ b/test/Test.java @@ -1,27 +1,20 @@ -import com.engine.common.util.DateUtil; import com.google.common.collect.Lists; -import com.google.common.collect.Sets; +import weaver.general.Util; import java.time.LocalDate; import java.time.temporal.ChronoUnit; import java.util.*; +import java.util.stream.Collectors; public class Test { public static void main(String[] args) { -// 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")); + + List> personGroupOrganizationList = Lists.newArrayList(); + personGroupOrganizationList.add(new HashMap(){{put("dx","4-夜班人员");}}); + personGroupOrganizationList.add(new HashMap(){{put("dx","8-测试条件录入");}}); + Set personGroupIds = personGroupOrganizationList.stream().map(e -> Util.null2String(e.get("dx")).split("-")[0]).collect(Collectors.toSet()); + System.out.println(String.join(",",personGroupIds)); } public static int getDaysBetween(String date1, String date2) {