From 52d1d7534656d5c7ba5085e707088f3b8586a24b Mon Sep 17 00:00:00 2001 From: zty <1048209592@qq.com> Date: Tue, 6 Aug 2024 17:00:06 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=9E=9A=E4=B8=BE=E7=B1=BB=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=A9=9A=E4=B8=A7/=E8=82=B2=E5=84=BF=E5=81=87=EF=BC=8C?= =?UTF-8?q?=E5=B0=8F=E5=81=87=E6=B5=81=E7=A8=8B=202.=E4=BB=A5=E4=B8=8A?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=9B=BE=E5=A2=9E=E5=8A=A0=203.=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E5=99=A8=E5=88=86=E7=AE=A1=E9=A2=86=E5=AF=BC=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=A2=9E=E5=8A=A0=E5=A9=9A=E4=B8=A7/=E8=82=B2?= =?UTF-8?q?=E5=84=BF=E5=81=87=EF=BC=8C=E5=B0=8F=E5=81=87=E4=B8=BA=E5=89=AF?= =?UTF-8?q?=E6=89=80=E9=95=BF=204.=E8=AF=B7=E5=81=87=E5=A2=9E=E5=8A=A0swit?= =?UTF-8?q?ch=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kehui/flows/util/MyTaskListener.java | 4 +- .../xqopen/kehui/flows/util/activitiEnum.java | 14 +++ .../action/PersonalEventsController.java | 102 ++++++++++++++---- .../resources/processes/leaveCountry.bpmn | 90 ++++++++++++++++ src/main/resources/processes/leaveMin.bpmn | 70 ++++++++++++ 5 files changed, 257 insertions(+), 23 deletions(-) create mode 100644 src/main/resources/processes/leaveCountry.bpmn create mode 100644 src/main/resources/processes/leaveMin.bpmn diff --git a/src/main/java/com/xqopen/kehui/flows/util/MyTaskListener.java b/src/main/java/com/xqopen/kehui/flows/util/MyTaskListener.java index 7f9d59e..592d10d 100644 --- a/src/main/java/com/xqopen/kehui/flows/util/MyTaskListener.java +++ b/src/main/java/com/xqopen/kehui/flows/util/MyTaskListener.java @@ -417,10 +417,10 @@ public class MyTaskListener implements TaskListener { private String setBranchLeader(activitiEnum.activitiClass aClass, String name, Long id) { AdminDocumentManagement management = documentManagementService.selectById(id); switch (aClass) { + case leaveMin: + case leaveCountry: //婚丧/育儿假分管领导是副所长(与请假天数无关) case postDocumentCgPj: //公文管理(发文管理)->成果评价->分管领导由所长改为副所长,且删除所长节点 - return "depDirector"; case postDocumentDysw: //公文管理(发文管理)->对外事务->删除部门主任节点,且分管领导为副所长 - return "depDirector"; case receivedDocument://公文管(收文款里) 分管领导为副所长,此处并未修改,只是删除了所长节点 return "depDirector"; /*case postDocument: diff --git a/src/main/java/com/xqopen/kehui/flows/util/activitiEnum.java b/src/main/java/com/xqopen/kehui/flows/util/activitiEnum.java index 8db8c06..ebef009 100644 --- a/src/main/java/com/xqopen/kehui/flows/util/activitiEnum.java +++ b/src/main/java/com/xqopen/kehui/flows/util/activitiEnum.java @@ -95,6 +95,15 @@ public class activitiEnum { @ApiModelProperty("请假流程审批") leave("请假流程审批"), + //婚丧/育儿假 (无关多少时间) + //事假/年休假/陪护假/育儿1天以上、病假3天以上 + //(新) + @ApiModelProperty("请假流程审批") + leaveCountry("请假流程审批"), + + //小假 1、事假/年休假/陪护假/育儿假1天、病假3天以内:申请人-部门主任 + @ApiModelProperty("请假流程审批") + leaveMin("请假流程审批"), //协会 //请假时间在三天以内:申请人(填单)——部门主任(审核) //请假时间在三天以上:申请人(填单)——部门主任(审核)——副秘书长(审核) @@ -513,6 +522,11 @@ public class activitiEnum { @ApiModelProperty("请假") leave("请假"), + @ApiModelProperty("请假(婚丧/产假)") + leaveCountry("请假(婚丧/产假) "), + + @ApiModelProperty("请假(小假)") + leaveMin("请假(小假) "), /* @ApiModelProperty("请假") leaveXh("请假"),*/ @ApiModelProperty("出国") diff --git a/src/main/java/com/xqopen/kehui/personal/action/PersonalEventsController.java b/src/main/java/com/xqopen/kehui/personal/action/PersonalEventsController.java index 1a764b6..a22f22f 100644 --- a/src/main/java/com/xqopen/kehui/personal/action/PersonalEventsController.java +++ b/src/main/java/com/xqopen/kehui/personal/action/PersonalEventsController.java @@ -24,11 +24,18 @@ import com.xqopen.kehui.util.MailUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; /** *
人员事件管理 前端控制器
@@ -99,7 +106,6 @@ public class PersonalEventsController implements PersonalEventsApi { personalEventsService.insert(personalEvents); - activitiEnum.activitiType aType = null; /** * 添加审批时,查询人员信息,判断是否协会交叉业务人员 @@ -109,24 +115,78 @@ public class PersonalEventsController implements PersonalEventsApi { /*if(member.getExt().getString("crossStatus").equals("2") || member.getExt().getString("crossStatus").equals("1")){ aType = activitiEnum.activitiType.leaveXh; }else{*/ - //添加审批 - switch (aClass) { - case leave: - aType = activitiEnum.activitiType.leave; - break; - case foreignVisit: - aType = activitiEnum.activitiType.foreignVisit; - break; - case traveling: - aType = activitiEnum.activitiType.traveling; - break; - case abroad: - aType = activitiEnum.activitiType.abroad; - break; - default: - aType = activitiEnum.activitiType.leave; - break; - } + //添加审批 + switch (aClass) { + case leave: //请假 + if (!ObjectUtils.isEmpty(personalEventsReq)) { + JSONObject ext = personalEventsReq.getExt(); + Date beginDate = personalEventsReq.getBeginDate(); //请假日期 + Date endDate = personalEventsReq.getEndDate(); //结束日期 + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + if (!ObjectUtils.isEmpty(ext)) { + String beginM = String.valueOf(ext.get("beginM"));//请假时间 + String endM = String.valueOf(ext.get("endM")); //结束时间 + if (ext.containsKey("leaveType")) { + String leaveType = String.valueOf(ext.get("leaveType")); + switch (leaveType) { + case "marriageLeave": //婚丧假 + case "maternityLeave": //产假 + aType = activitiEnum.activitiType.leaveCountry; + break; + case "leave"://事假 + case "annualLeave"://年休假 + case "paternityLeave"://陪护假 + case "parentalLeave"://育儿假 + case "sickLeave": //病假 + LocalDate start = LocalDate.parse(formatter.format(beginDate)); + LocalDate end = LocalDate.parse(formatter.format(endDate)); + LocalTime beginTime = LocalTime.parse(beginM); + LocalTime endTime = LocalTime.parse(endM); + LocalDateTime startDateTime = LocalDateTime.of(start, beginTime); + LocalDateTime endDateTime = LocalDateTime.of(end, endTime); + long days = ChronoUnit.DAYS.between(startDateTime, endDateTime); + if(!"sickLeave".equals(leaveType)){ + if(days>=1){ + aType = activitiEnum.activitiType.leaveCountry; + break; + } + else{ + aType = activitiEnum.activitiType.leaveMin; + break; + } + } + else{ + if(days>=3){ + aType = activitiEnum.activitiType.leaveCountry; + break; + } + else{ + aType = activitiEnum.activitiType.leaveMin; + break; + } + } + default: + aType = activitiEnum.activitiType.leave; + break; + } + } + } + } +// aType = activitiEnum.activitiType.leave; + break; + case foreignVisit: + aType = activitiEnum.activitiType.foreignVisit; + break; + case traveling: + aType = activitiEnum.activitiType.traveling; + break; + case abroad: + aType = activitiEnum.activitiType.abroad; + break; + default: + aType = activitiEnum.activitiType.leave; + break; + } // } } @@ -202,7 +262,7 @@ public class PersonalEventsController implements PersonalEventsApi { mailUtil.sendEmail( "liulei@51kehui.com", "【销假通知】", - "考勤员:您好!人事已为"+name+"销假!", + "考勤员:您好!人事已为" + name + "销假!", "oa@51kehui.com", "Oa1234", mailUtil.EMAIL_SMTP_QQ_HOST); @@ -300,7 +360,7 @@ public class PersonalEventsController implements PersonalEventsApi { String activitiStatus = eventsResp.getActivitiStatus(); JSONObject ext_ = eventsResp.getExt(); Integer salesLeave = 0; - if (ext_!=null && ext_.containsKey("salesLeave")) { + if (ext_ != null && ext_.containsKey("salesLeave")) { salesLeave = ext_.getInteger("salesLeave"); } List