diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/OaTaskExecController.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/OaTaskExecController.java new file mode 100644 index 00000000..2c2a1c0b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/OaTaskExecController.java @@ -0,0 +1,21 @@ +package com.ydw.bat.wkflow.business_main.datas.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * OA 干活任务执行表 前端控制器 + *

+ * + * @author Super_liu + * @since 2021-09-24 + */ +@RestController +@RequestMapping("/oaTaskExec") +public class OaTaskExecController { + +} + diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessNew.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessNew.java index 56d384b3..6af6dc34 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessNew.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/BusProcessNew.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; + +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -92,4 +94,17 @@ public class BusProcessNew implements Serializable { @TableField( exist = false) @ApiModelProperty(value = "OA link") private String link; + + @TableField( exist = false) + @ApiModelProperty(value = "干活任务截止时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String endTime; + + @TableField( exist = false) + @ApiModelProperty(value = "任务状态 1 审批任务 2 干活任务") + private int taskStatus; + + @TableField( exist = false) + @ApiModelProperty(value = "维度 1 3天内 2 3天外") + private int execType; } diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/OaTaskExec.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/OaTaskExec.java new file mode 100644 index 00000000..60a3e524 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/OaTaskExec.java @@ -0,0 +1,85 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * OA 干活任务执行表 + *

+ * + * @author Super_liu + * @since 2021-09-24 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="OaTaskExec对象", description="OA 干活任务执行表") +public class OaTaskExec implements Serializable { + + private static final long serialVersionUID=1L; + + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + @ApiModelProperty(value = "执行维度 1 3天内 2 3天外") + @TableField("EXEC_TYPE") + private int execType; + + @ApiModelProperty(value = "待办ID") + @TableField("TODO_ID") + private String todoId; + + @ApiModelProperty(value = "待办用户ID") + @TableField("USER_ID") + private String userId; + + @ApiModelProperty(value = "待办对象JSON") + @TableField("MESG") + private String mesg; + + @ApiModelProperty(value = "执行状态 0 未启动 1 已启动 2 已完成") + @TableField("EXEC_STATUS") + private int execStatus; + + @ApiModelProperty(value = "执行时间") + @TableField("EXEC_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String execTime; + + @ApiModelProperty(value = "截止时间") + @TableField("END_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String endTime; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATE_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String createTime; + + @ApiModelProperty(value = "更新时间") + @TableField("UPDATE_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String updateTime; + + @ApiModelProperty(value = "参数1") + @TableField("PARAM1") + private int param1; + + @ApiModelProperty(value = "参数2") + @TableField("PARAM2") + private String param2; + + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/OaTaskExecMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/OaTaskExecMapper.java new file mode 100644 index 00000000..10f7b6e4 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/OaTaskExecMapper.java @@ -0,0 +1,16 @@ +package com.ydw.bat.wkflow.business_main.datas.mapper; + +import com.ydw.bat.wkflow.business_main.datas.entity.OaTaskExec; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * OA 干活任务执行表 Mapper 接口 + *

+ * + * @author Super_liu + * @since 2021-09-24 + */ +public interface OaTaskExecMapper extends BaseMapper { + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IOaTaskExecService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IOaTaskExecService.java new file mode 100644 index 00000000..25c9cf2a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IOaTaskExecService.java @@ -0,0 +1,16 @@ +package com.ydw.bat.wkflow.business_main.datas.service; + +import com.ydw.bat.wkflow.business_main.datas.entity.OaTaskExec; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * OA 干活任务执行表 服务类 + *

+ * + * @author Super_liu + * @since 2021-09-24 + */ +public interface IOaTaskExecService extends IService { + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/OaTaskExecServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/OaTaskExecServiceImpl.java new file mode 100644 index 00000000..8415b2b1 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/OaTaskExecServiceImpl.java @@ -0,0 +1,20 @@ +package com.ydw.bat.wkflow.business_main.datas.service.impl; + +import com.ydw.bat.wkflow.business_main.datas.entity.OaTaskExec; +import com.ydw.bat.wkflow.business_main.datas.mapper.OaTaskExecMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IOaTaskExecService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * OA 干活任务执行表 服务实现类 + *

+ * + * @author Super_liu + * @since 2021-09-24 + */ +@Service +public class OaTaskExecServiceImpl extends ServiceImpl implements IOaTaskExecService { + +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendMQService.java b/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendMQService.java index a949bb18..b4bbefef 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendMQService.java +++ b/src/main/java/com/ydw/bat/wkflow/business_mq/service/SendMQService.java @@ -3,15 +3,14 @@ package com.ydw.bat.wkflow.business_mq.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.rabbitmq.client.Channel; import com.ydw.bat.wkflow.business_auth.LawsUserInfoService; -import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; -import com.ydw.bat.wkflow.business_main.datas.entity.ResponseMessage; -import com.ydw.bat.wkflow.business_main.datas.entity.SendTodoLog; -import com.ydw.bat.wkflow.business_main.datas.entity.UserVO; +import com.ydw.bat.wkflow.business_main.datas.entity.*; import com.ydw.bat.wkflow.business_main.datas.mapper.SendTodoLogMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IOaTaskExecService; import com.ydw.bat.wkflow.business_oa.utils.EmailUtils; import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService; import com.ydw.bat.wkflow.business_oa.webService.todoResult.NotifyTodoAppResult; import net.sf.json.JSONObject; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,6 +24,9 @@ import org.springframework.messaging.Message; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -46,6 +48,9 @@ public class SendMQService { @Autowired private SendTodoLogMapper sendTodoLogMapper; + @Autowired + private IOaTaskExecService oaTaskExecService; + @Autowired private LawsUserInfoService lawsUserInfoService; @@ -57,7 +62,28 @@ public class SendMQService { try{ try{ Thread.sleep(5000); - insertOrUpdateInfo(object); + if(object.getTaskStatus() == 2 && object.getEndTime() != null && StringUtils.isNotBlank(object.getEndTime())){ + DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); + LocalDate startDate = LocalDate.parse(new SimpleDateFormat("yyyy-MM-dd").format(new Date()),fmt); + LocalDate endDate = LocalDate.parse(object.getEndTime(),fmt); + int days = (int) startDate.until(endDate, ChronoUnit.DAYS); + // 3 天 外 + if(days > 3){ + // 待 + OaTaskExec oaTaskExec = new OaTaskExec(); + oaTaskExec.setExecType(2); + oaTaskExec.setCreateTime(sdf.format(new Date())); + oaTaskExec.setUpdateTime(sdf.format(new Date())); + oaTaskExecService.save(oaTaskExec); + }else { + // 3 天 内 发送 OA 待办 + insertOrUpdateInfo(object); + } + }else { + // 正常逻辑发送 OA 待办 + insertOrUpdateInfo(object); + } }catch(InterruptedException e){ logger.error(e.toString()); Thread.currentThread().interrupt(); diff --git a/src/main/resources/mapper/oaTaskExec/OaTaskExecMapper.xml b/src/main/resources/mapper/oaTaskExec/OaTaskExecMapper.xml new file mode 100644 index 00000000..530e7eb0 --- /dev/null +++ b/src/main/resources/mapper/oaTaskExec/OaTaskExecMapper.xml @@ -0,0 +1,5 @@ + + + + +