فهرست منبع

2023 12 12 保存更新

zhuwei 1 سال پیش
والد
کامیت
3d466c3bf0

+ 2 - 2
blade-common/src/main/java/org/springblade/common/utils/AsyncConfigurer.java

@@ -15,7 +15,7 @@ public class AsyncConfigurer {
     /**
      * cpu 核心数量
      */
-    public static final int cpuNum = 3;//Runtime.getRuntime().availableProcessors();
+    public static final int cpuNum = 8;//Runtime.getRuntime().availableProcessors();
 
     /**
      * 线程池配置
@@ -25,7 +25,7 @@ public class AsyncConfigurer {
     @Bean("taskExecutor1")
     public ThreadPoolExecutor getAsyncExecutor() {
         return new ThreadPoolMonitor(cpuNum
-                , 6
+                , 20
                 , 60
                 , TimeUnit.SECONDS
                 , new LinkedBlockingQueue<>(2000)

+ 40 - 79
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVisaController.java

@@ -21,6 +21,7 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.*;
 
@@ -48,84 +49,44 @@ public class EVisaController {
     @Resource(name = "taskExecutor1")
     private ThreadPoolExecutor executor;
 
+
     // 电签主类
-//    @Scheduled(cron = "0 */1 * * * ?")
-//    public void SignInfo() {
-//        //执行代码
-//        log.info("扫描开始");
-//        String sql = "SELECT * from u_task_batch where is_deleted not in(2,4) LIMIT 100";
-//        List<TaskBatch> maps = jdbcTemplate.queryForList(sql,TaskBatch.class);
-//        if (maps != null && maps.size() >= 1) {
-//            for (TaskBatch dataInfo : maps) {
-//                String jsonData = dataInfo.getJsonData();
-//                TaskApprovalVO taskApprovalVO = JSON.parseObject(jsonData, TaskApprovalVO.class);
-//                String taskBatchId = dataInfo.getId().toString();
-//                Long userId = dataInfo.getCreateUser();
-//                String nickName = dataInfo.getNickName();
-//
-//                Boolean istrue = true;
-//                try {
-//                    Thread.sleep(500);
-//                } catch (InterruptedException e) {
-//                    throw new RuntimeException(e);
-//                }
-//
-//                Boolean aBoolean = RedisTemplate.hasKey("sign-" + taskApprovalVO.getFormDataId());
-//                System.out.println(taskApprovalVO.getFormDataId()+"---"+aBoolean);
-//                if (aBoolean) {
-//                    istrue = false;
-//                }
-//                if (istrue) {
-//                    int wtask = executor.getQueue().size();
-//                    if (wtask >= 200) {
-//                        break;
-//                    }
-//                    jdbcTemplate.execute("update u_task_batch set is_deleted=2 where id="+taskBatchId+"");
-//                    RedisTemplate.opsForValue().set("sign-" + taskApprovalVO.getFormDataId(), "1", 66, TimeUnit.SECONDS);
-//                    CompletableFuture<Void> runAsync = CompletableFuture.runAsync(() -> {
-//                        try {
-//                            this.checkIsExsitTaskBatch(taskApprovalVO, taskBatchId, userId, nickName);
-//                        } catch (FileNotFoundException e) {
-//                            e.printStackTrace();
-//                        }
-//                    }, executor);
-//                }
-//            }
-//        }
-//    }
-//
-//    private void checkIsExsitTaskBatch(TaskApprovalVO taskApprovalVO, String batchId, Long userId, String nickName) throws FileNotFoundException {
-//        log.info("【任务审核】当前批次开始电签。批次ID:" + batchId);
-//        taskApprovalVO.setId(batchId);
-//        taskApprovalVO.setUserId(userId);
-//        taskApprovalVO.setNickName(nickName);
-//        String pdfUrlEVisa = this.completeApprovalTask(taskApprovalVO);
-//
-//        System.out.println("电签操作成功buss-----" + pdfUrlEVisa + "---batchId=" + batchId);
-//        //TODO ============== 电签成功,修改试验状态,关联工程部位信息pdf(只有电签成功,才修改) liuYc 2023-03-16 ==============
-//        if ("OK".equals(taskApprovalVO.getFlag()) && StringUtils.isNotEmpty(pdfUrlEVisa)) {
-//            //已审批
-//            this.iTrialSelfInspectionRecordService.updateTrialSelfInspectionRecordStatus(pdfUrlEVisa, taskApprovalVO);
-//            //executor删除掉对应批次
-//            this.taskBatchService.deletedById(batchId);
-//        }
-//
-//        if (!"OK".equals(taskApprovalVO.getFlag())) {
-//            //已废除
-//            this.iTrialSelfInspectionRecordService.updateTrialSelfInspectionRecordStatusFC(taskApprovalVO);
-//            //executor删除掉对应批次
-//            this.taskBatchService.deletedById(batchId);
-//        }
-//        RedisTemplate.delete("sign-" + taskApprovalVO.getFormDataId());
-//    }
-//
-//    private String completeApprovalTask(TaskApprovalVO taskApprovalVO) {
-//        if ("OK".equals(taskApprovalVO.getFlag())) { // 电签流程
-//
-//        }else { //任务废除
-//
-//        }
-//
-//        return "";
-//    }
+    @Scheduled(cron = "0 */1 * * * ?")
+    public void SignInfo() {
+        //执行代码
+        log.info("扫描开始");
+        String sql = "SELECT * from u_task_batch where is_deleted =0 LIMIT 100";
+        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
+        if (maps != null && maps.size() >= 1) {
+            for (Map<String, Object> dataInfo : maps) {
+                String jsonData = dataInfo.get("json_data")+"";
+                TaskApprovalVO taskApprovalVO = JSON.parseObject(jsonData, TaskApprovalVO.class);
+                String taskBatchId = dataInfo.get("id").toString();
+                Long userId = Long.valueOf(dataInfo.get("create_user")+"");
+                String nickName = dataInfo.get("nick_name")+"";
+                String formDataId = taskApprovalVO.getFormDataId();
+
+                CompletableFuture<Void> runAsync = CompletableFuture.runAsync(() -> {
+                        try {
+                           this.checkIsExsitTaskBatch(taskApprovalVO, taskBatchId, userId, nickName);
+                        } catch (FileNotFoundException e) {
+                            e.printStackTrace();
+                        }
+                }, executor);
+            }
+        }
+    }
+
+    private void checkIsExsitTaskBatch(TaskApprovalVO taskApprovalVO, String batchId, Long userId, String nickName) throws FileNotFoundException {
+        synchronized (taskApprovalVO.getFormDataId()) {
+            try {
+                System.out.println(taskApprovalVO.getFormDataId());
+                Thread.sleep(8000);
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        System.out.println();
+    }
+
 }

+ 8 - 4
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/ContractInventoryFormController.java

@@ -187,14 +187,18 @@ public class ContractInventoryFormController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "获取合同工程清单表", notes = "返回获取合同工程清单表列表")
 	@ApiImplicitParams(value = {
-			@ApiImplicitParam(name = "contractId", value = "", required = true),
-			@ApiImplicitParam(name = "formNum", value = "formNum", required = true)
+			@ApiImplicitParam(name = "contractId", value = "合同id", required = true),
+			@ApiImplicitParam(name = "formNum", value = "清单编号", required = false),
+			@ApiImplicitParam(name = "meterId", value = "计量单元Id", required = true)
 	})
-	public R<List<ContractFromVO>> getFormTree(Long contractId, String formNum){
+	public R<List<ContractFromVO>> getFormTree(Long contractId, String formNum,Long meterId){
 		if(contractId!=null && ObjectUtil.isEmpty(contractId)){
 			return R.fail("contractId不能为空");
 		}
-		List<ContractFromVO> treeAll = contractInventoryFormService.getContrFormAllByContrId(contractId,formNum,1,0L);
+		if(meterId!=null && ObjectUtil.isEmpty(meterId)){
+			return R.fail("meterId不能为空");
+		}
+		List<ContractFromVO> treeAll = contractInventoryFormService.getContrFormAllByContrId(contractId,formNum,1,meterId);
 		return R.data(treeAll);
 	}
 	

+ 21 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/InventoryFormMeterController.java

@@ -132,4 +132,25 @@ public class InventoryFormMeterController extends BladeController {
 		}
 		return inventoryFormMeterService.inventoryFormMeterService(meterId,formIds);
 	}
+
+
+	/**
+	 * 删除 同合计量 清单
+	 */
+	@PostMapping("/removeInfo")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除同合计量", notes = "传入")
+	@ApiImplicitParams(value = {
+			@ApiImplicitParam(name = "meterId", value = "合同计量单元id", required = true),
+			@ApiImplicitParam(name = "formIds", value = "合同工程清单ids,多个以,分割", required = true)
+	})
+	public R delInMeterInfo(String meterId,String formIds) {
+		if(meterId==null & StringUtils.isEmpty(meterId)){
+			R.fail("计量单元meterId不能为null");
+		}
+		if(formIds!=null & StringUtils.isNotEmpty(formIds)){
+			R.fail("合同工程清单formIds不能为null");
+		}
+		return inventoryFormMeterService.delInMeterInfo(meterId,formIds);
+	}
 }

+ 4 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractInventoryFormMapper.xml

@@ -100,6 +100,10 @@
             <if test="formNum != null and formNum != '' and type==1">
                 and u.form_number like concat('%',#{formNum},'%')
             </if>
+            <if test="type==1">
+                and u.ID not in (select contract_form_id from s_inventory_form_meter where is_deleted=0 and contract_id = #{contractId} and contract_meter_id=#{meterId} )
+                and u.is_form_node =1
+            </if>
             <if test="type==2">
                 and u.ID in (select contract_form_id from s_inventory_form_meter where is_deleted=0 and contract_id = #{contractId} and contract_meter_id=#{meterId} )
             </if>

+ 1 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/InventoryFormMeterMapper.java

@@ -34,4 +34,5 @@ public interface InventoryFormMeterMapper extends BaseMapper<InventoryFormMeter>
 
     List<Long> getNodeAllForm(@Param("nodeId") Long nodeId);
     ContractInventoryForm dadainfo(@Param("forid") long forid);
+
 }

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IInventoryFormMeterService.java

@@ -42,4 +42,9 @@ public interface IInventoryFormMeterService extends BaseService<InventoryFormMet
 
     // 修改信息
     boolean updateInfo(List<ContractFromVO> dataInfo,Long meterId);
+
+    /**
+     * 删除 同合计量 清单
+     */
+    R delInMeterInfo(String meterId, String formIds);
 }

+ 11 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/InventoryFormMeterServiceImpl.java

@@ -81,4 +81,15 @@ public class InventoryFormMeterServiceImpl extends BaseServiceImpl<InventoryForm
         }
         return true;
     }
+
+    @Override
+    public R delInMeterInfo(String meterId, String formIds) {
+        List<Long> longList = Func.toLongList(formIds);
+        for(Long forid:longList) {
+            baseMapper.delete(Wrappers.<InventoryFormMeter>query().lambda()
+                    .eq(InventoryFormMeter::getContractMeterId, meterId)
+                    .eq(InventoryFormMeter::getContractFormId, forid));
+        }
+        return R.success("成功");
+    }
 }