|
@@ -1,5 +1,6 @@
|
|
|
package org.springblade.business.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
@@ -38,10 +39,15 @@ import org.springblade.manager.entity.ContractInfo;
|
|
|
import org.springblade.manager.entity.ProjectInfo;
|
|
|
import org.springblade.manager.feign.ContractClient;
|
|
|
import org.springblade.manager.feign.ProjectClient;
|
|
|
+import org.springblade.system.user.cache.UserCache;
|
|
|
+import org.springblade.system.user.entity.User;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
+import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -96,6 +102,9 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
|
|
|
|
|
|
private final JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ StringRedisTemplate RedisTemplate;
|
|
|
+
|
|
|
private final ITrialSelfInspectionRecordService iTrialSelfInspectionRecordService;
|
|
|
|
|
|
// 线程池
|
|
@@ -425,19 +434,71 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
|
|
|
.in(TaskParallel::getParallelProcessInstanceId, taskIds));
|
|
|
//保存批次
|
|
|
TaskBatch taskBatch = new TaskBatch(null, JSONObject.toJSONString(taskApprovalVOS));
|
|
|
- taskBatch.setCreateUser(AuthUtil.getUserId());
|
|
|
+ taskBatch.setCreateUser(userId);
|
|
|
+ taskBatch.setNickName(nickName);
|
|
|
taskBatch.setCreateTime(new Date());
|
|
|
|
|
|
this.taskBatchService.save(taskBatch);
|
|
|
String taskBatchId = taskBatch.getId().toString();
|
|
|
+
|
|
|
+ // 电签
|
|
|
+ Boolean istrue = true;
|
|
|
+ for (TaskApprovalVO taskApprovalVO : taskApprovalVOS) {
|
|
|
+ Boolean aBoolean = RedisTemplate.hasKey("sign-" + taskApprovalVO.getFormDataId());
|
|
|
+ if(aBoolean){
|
|
|
+ istrue =false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 添加到 线程中
|
|
|
- CompletableFuture<Void> runAsync = CompletableFuture.runAsync(() -> {
|
|
|
- try {
|
|
|
- this.checkIsExsitTaskBatch(taskApprovalVOS, taskBatchId,userId,nickName);
|
|
|
- } catch (FileNotFoundException e) {
|
|
|
- e.printStackTrace();
|
|
|
+ if(istrue){
|
|
|
+ CompletableFuture<Void> runAsync = CompletableFuture.runAsync(() -> {
|
|
|
+ try {
|
|
|
+ this.checkIsExsitTaskBatch(taskApprovalVOS, taskBatchId,userId,nickName);
|
|
|
+ } catch (FileNotFoundException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }, executor);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Scheduled(cron = "0 */3 * * * ?")
|
|
|
+ public void SignInfo() {
|
|
|
+ //执行代码
|
|
|
+ logger.debug("扫描开始");
|
|
|
+ List<TaskBatch> maps = taskBatchService.getBaseMapper().selectList(Wrappers.<TaskBatch>lambdaQuery().eq(TaskBatch::getIsDeleted, 0));
|
|
|
+ if(maps!=null && maps.size()>=1){
|
|
|
+ for (TaskBatch dataInfo:maps){
|
|
|
+ String jsonData = dataInfo.getJsonData();
|
|
|
+ List<TaskApprovalVO> list=JSONArray.parseArray(jsonData,TaskApprovalVO.class);
|
|
|
+ String taskBatchId = dataInfo.getId().toString();
|
|
|
+ Long userId = dataInfo.getCreateUser();
|
|
|
+ String nickName = dataInfo.getNickName();
|
|
|
+
|
|
|
+ Boolean istrue = true;
|
|
|
+ for (TaskApprovalVO taskApprovalVO : list) {
|
|
|
+ Boolean aBoolean = RedisTemplate.hasKey("sign-" + taskApprovalVO.getFormDataId());
|
|
|
+ if(aBoolean){
|
|
|
+ istrue =false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加到 线程中
|
|
|
+ if(istrue){
|
|
|
+ CompletableFuture<Void> runAsync = CompletableFuture.runAsync(() -> {
|
|
|
+ try {
|
|
|
+ this.checkIsExsitTaskBatch(list, taskBatchId,userId,nickName);
|
|
|
+ } catch (FileNotFoundException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }, executor);
|
|
|
+ runAsync.join();
|
|
|
}
|
|
|
- }, executor);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void checkIsExsitTaskBatch(List<TaskApprovalVO> taskApprovalVOS, String batchId,Long userId,String nickName) throws FileNotFoundException {
|
|
@@ -448,8 +509,9 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
|
|
|
for (TaskApprovalVO taskApprovalVO : taskApprovalVOS) {
|
|
|
taskApprovalVO.setUserId(userId);
|
|
|
taskApprovalVO.setNickName(nickName);
|
|
|
- String pdfUrlEVisa = this.completeApprovalTask(taskApprovalVO);
|
|
|
+ RedisTemplate.opsForValue().set("sign-"+taskApprovalVO.getFormDataId(),"1",300, TimeUnit.SECONDS);
|
|
|
|
|
|
+ String pdfUrlEVisa = this.completeApprovalTask(taskApprovalVO);
|
|
|
//TODO ============== 电签成功,修改试验状态,关联工程部位信息pdf(只有电签成功,才修改) liuYc 2023-03-16 ==============
|
|
|
if ("OK".equals(taskApprovalVO.getFlag()) && StringUtils.isNotEmpty(pdfUrlEVisa)) {
|
|
|
//已审批
|
|
@@ -460,8 +522,12 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
|
|
|
this.iTrialSelfInspectionRecordService.updateTrialSelfInspectionRecordStatusFC(taskApprovalVO);
|
|
|
}
|
|
|
}
|
|
|
- //删除掉对应批次
|
|
|
+
|
|
|
+ //executor删除掉对应批次
|
|
|
this.taskBatchService.deletedById(batchId);
|
|
|
+ for (TaskApprovalVO taskApprovalVO : taskApprovalVOS) {
|
|
|
+ RedisTemplate.delete("sign-"+taskApprovalVO.getFormDataId());
|
|
|
+ }
|
|
|
isContinue = false;
|
|
|
}
|
|
|
}
|