|
@@ -0,0 +1,108 @@
|
|
|
+package com.dragonsoft.dcuc.approve.business.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import com.dragonsoft.auditlog.collection.qmtj.LogSendComponent;
|
|
|
+import com.dragonsoft.auditlog.collection.qmtj.pojo.req.ApproveBusLog;
|
|
|
+import com.dragonsoft.dcuc.approve.business.IApproveExpirationBusiness;
|
|
|
+import com.dragonsoft.dcuc.approve.event.listener.ApproveOperateLogEventListener;
|
|
|
+import com.dragonsoft.dcuc.approve.model.ApproveRecordInfo;
|
|
|
+import com.dragonsoft.dcuc.approve.properties.ApproveProperties;
|
|
|
+import com.dragonsoft.dcuc.approve.service.IApproveRecordService;
|
|
|
+import com.dragonsoft.duceap.commons.util.UUIDUtils;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ *
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author huangzqa
|
|
|
+ * @date 2023/7/18
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Component
|
|
|
+public class ApproveExpirationBusinessImpl implements IApproveExpirationBusiness {
|
|
|
+
|
|
|
+ private ApproveProperties approveProperties;
|
|
|
+
|
|
|
+ private IApproveRecordService approveRecordService;
|
|
|
+
|
|
|
+ private LogSendComponent logSendComponent;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public void setLogSendComponent(LogSendComponent logSendComponent) {
|
|
|
+ this.logSendComponent = logSendComponent;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public void setApproveRecordService(IApproveRecordService approveRecordService) {
|
|
|
+ this.approveRecordService = approveRecordService;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public void setApproveProperties(ApproveProperties approveProperties) {
|
|
|
+ this.approveProperties = approveProperties;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void schedulingTask() {
|
|
|
+ Integer overdueTimeDays = approveProperties.getExpirationTimeDays();
|
|
|
+ //
|
|
|
+ DateTime date = DateUtil.date();
|
|
|
+ DateTime startExpirationDateTime = DateUtil.offsetDay(date, -overdueTimeDays);
|
|
|
+ // 开始过期的时间
|
|
|
+ List<ApproveRecordInfo> expirationTimeRecord = approveRecordService.findExpirationTimeRecord(startExpirationDateTime);
|
|
|
+ for (ApproveRecordInfo approveRecordInfo : expirationTimeRecord) {
|
|
|
+ approveRecordInfo.setExpirationTime(date);
|
|
|
+ approveRecordService.updateById(approveRecordInfo);
|
|
|
+ sendAuditOverdueTimeLog(approveRecordInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发送超期日志
|
|
|
+ *
|
|
|
+ * @param approveRecordInfo 审批单信息
|
|
|
+ */
|
|
|
+ protected void sendAuditOverdueTimeLog(ApproveRecordInfo approveRecordInfo) {
|
|
|
+ String auditSysId = approveProperties.getAuditSysId();
|
|
|
+ String appToken = approveRecordInfo.getApplicantAppToken();
|
|
|
+ String requestIdcard = approveRecordInfo.getApplicantIdcard();
|
|
|
+ String requestUsername = approveRecordInfo.getApplicantName();
|
|
|
+ String requestApproveIp = approveRecordInfo.getApplicantIp();
|
|
|
+ String approveTimeString = System.currentTimeMillis() + "";
|
|
|
+ String approveLogId = UUIDUtils.getUUID();
|
|
|
+ String approveNo = approveRecordInfo.getApproveNo();
|
|
|
+
|
|
|
+ log.info("发送超期日志:审批单号:{}", approveNo);
|
|
|
+
|
|
|
+ ApproveBusLog approveBusLog = new ApproveBusLog();
|
|
|
+ approveBusLog.setAppToken(appToken);
|
|
|
+ approveBusLog.setApplyApproveId(requestIdcard);
|
|
|
+ approveBusLog.setApplyApproveIdCard(requestIdcard);
|
|
|
+ approveBusLog.setApplyApproveName(requestUsername);
|
|
|
+ approveBusLog.setApplyApproveIp(requestApproveIp);
|
|
|
+ approveBusLog.setOperateTime(approveTimeString);
|
|
|
+ // 请求处理
|
|
|
+ approveBusLog.setApplyType("02");
|
|
|
+ // 超期
|
|
|
+ approveBusLog.setBusinessType("23");
|
|
|
+ approveBusLog.setApproveContentHash("");
|
|
|
+ approveBusLog.setApproveTableHash("");
|
|
|
+
|
|
|
+ approveBusLog.setApproveTaskId(approveLogId);
|
|
|
+ approveBusLog.setApplySystemId("");
|
|
|
+ approveBusLog.setApproveCenterId(approveNo);
|
|
|
+ approveBusLog.setExtend(ApproveOperateLogEventListener.EXTEND);
|
|
|
+ approveBusLog.setRelatedId("");
|
|
|
+
|
|
|
+ List<ApproveBusLog> approveBusLogList = Collections.singletonList(approveBusLog);
|
|
|
+ logSendComponent.sendApproveBusLog(auditSysId, ApproveOperateLogEventListener.OPERATE_LOG_TYPE, approveBusLogList);
|
|
|
+ }
|
|
|
+}
|