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 roles = roleService.getSystemRoleByRoleTagAUserId("personnel", userId); diff --git a/src/main/resources/processes/leaveCountry.bpmn b/src/main/resources/processes/leaveCountry.bpmn new file mode 100644 index 0000000..64b2cd8 --- /dev/null +++ b/src/main/resources/processes/leaveCountry.bpmn @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + _2 + + + + + + + _2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/processes/leaveMin.bpmn b/src/main/resources/processes/leaveMin.bpmn new file mode 100644 index 0000000..c46fc70 --- /dev/null +++ b/src/main/resources/processes/leaveMin.bpmn @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + _3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +