|
|
|
@ -3,22 +3,25 @@ package com.op.quality.controller;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.concurrent.ExecutorService;
|
|
|
|
|
import java.util.concurrent.LinkedBlockingQueue;
|
|
|
|
|
import java.util.concurrent.ThreadPoolExecutor;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
|
|
|
import com.op.common.core.domain.R;
|
|
|
|
|
import com.op.common.core.utils.DateUtils;
|
|
|
|
|
import com.op.common.core.utils.bean.BeanUtils;
|
|
|
|
|
import com.op.common.security.utils.SecurityUtils;
|
|
|
|
|
import com.op.quality.domain.*;
|
|
|
|
|
import com.op.system.api.RemoteOpenService;
|
|
|
|
|
import com.op.system.api.RemoteUserService;
|
|
|
|
|
import com.op.system.api.domain.SysRole;
|
|
|
|
|
import com.op.system.api.domain.SysUser;
|
|
|
|
|
import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO;
|
|
|
|
@ -56,6 +59,9 @@ public class QcCheckTaskIncomeController extends BaseController {
|
|
|
|
|
@Autowired
|
|
|
|
|
private IQcCheckTaskIncomeService qcCheckTaskIncomeService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private RemoteUserService remoteUserService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询来料检验列表
|
|
|
|
|
*/
|
|
|
|
@ -137,6 +143,71 @@ public class QcCheckTaskIncomeController extends BaseController {
|
|
|
|
|
return error("添加失败:请检查物料的关联检测项");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PostMapping("/createIncomeBatchTask")
|
|
|
|
|
public AjaxResult createIncomeBatchTask() {
|
|
|
|
|
// 加载sf-cloud库的sys_datasource
|
|
|
|
|
SysUser sysUser = new SysUser();
|
|
|
|
|
sysUser.setUserId(1L);
|
|
|
|
|
R<List<Map<String, String>>> dateSources0 = remoteUserService.getPoolNameList(sysUser);
|
|
|
|
|
List<Map<String, String>> dateSources = dateSources0.getData();
|
|
|
|
|
ExecutorService executorService = new ThreadPoolExecutor(
|
|
|
|
|
dateSources.size(),
|
|
|
|
|
dateSources.size(),
|
|
|
|
|
0L, TimeUnit.MILLISECONDS,
|
|
|
|
|
new LinkedBlockingQueue<Runnable>());
|
|
|
|
|
try {
|
|
|
|
|
dateSources.forEach(dateSource -> {
|
|
|
|
|
Runnable run = () -> createIncomeBatchTaskFunc(dateSource.get("poolName"));
|
|
|
|
|
executorService.execute(run);
|
|
|
|
|
});
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
logger.error("controller == createIncomeBatchTask == exception", e);
|
|
|
|
|
return error("controller == createIncomeBatchTask == exception");
|
|
|
|
|
} finally {
|
|
|
|
|
executorService.shutdown();
|
|
|
|
|
}
|
|
|
|
|
return success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public AjaxResult createIncomeBatchTaskFunc(String poolName){
|
|
|
|
|
try {
|
|
|
|
|
DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key
|
|
|
|
|
Date taskTime = DateUtils.getNowDate();
|
|
|
|
|
logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务开始+++时间:"+ taskTime +"++++++++++");
|
|
|
|
|
List<QcCheckTaskIncome> incomeBatchLists = qcCheckTaskIncomeService.getIncomeBatchList(poolName);
|
|
|
|
|
List<String> batchRecordIds = new ArrayList<>();
|
|
|
|
|
int successNum = 0;//成功任务数
|
|
|
|
|
int failNum = 0;//失败任务数
|
|
|
|
|
if(incomeBatchLists != null){
|
|
|
|
|
for( int i = 0 ; i < incomeBatchLists.size();){
|
|
|
|
|
QcCheckTaskIncomeDTO qcCheckTaskIncomedto = new QcCheckTaskIncomeDTO();
|
|
|
|
|
QcCheckTaskIncome income = incomeBatchLists.get(i);
|
|
|
|
|
BeanUtils.copyProperties(income,qcCheckTaskIncomedto);
|
|
|
|
|
//内层一个一个创建任务
|
|
|
|
|
AjaxResult ajaxResult = createIncomeTask(qcCheckTaskIncomedto);
|
|
|
|
|
if(ajaxResult.isSuccess()){
|
|
|
|
|
batchRecordIds.add(qcCheckTaskIncomedto.getRecordId());
|
|
|
|
|
successNum = successNum + 1;
|
|
|
|
|
logger.info(poolName + "工厂的" + income.getCheckNo()+"来料检验创建任务成功++++++++++");
|
|
|
|
|
}else if(ajaxResult.isError()){
|
|
|
|
|
failNum = failNum +1;
|
|
|
|
|
logger.info(poolName + "工厂的" + income.getCheckNo()+"来料检验创建任务失败++++++++++");
|
|
|
|
|
}
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
logger.info("++++++++++++" + poolName + "工厂来料检验没有可创建的任务++++++++++");
|
|
|
|
|
}
|
|
|
|
|
//批量修改原表中的check_status和check_time
|
|
|
|
|
int upate = qcCheckTaskIncomeService.updateIncomeBatchList(batchRecordIds,taskTime);
|
|
|
|
|
logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务结束:成功"+ successNum +"失败"+ failNum +"+++++");
|
|
|
|
|
return success();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
logger.info("++++++++++++" + poolName + "工厂来料检验批量创建任务失败++++++++++");
|
|
|
|
|
return error("++++++++++++" + poolName + "工厂来料检验批量创建任务失败++++++++++");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PostMapping("/createIncomeTask")
|
|
|
|
|
public AjaxResult createIncomeTask(@RequestBody QcCheckTaskIncomeDTO qcCheckTaskIncome0) {
|
|
|
|
|
QcCheckTaskIncome qcCheckTaskIncome = new QcCheckTaskIncome();
|
|
|
|
@ -166,14 +237,14 @@ public class QcCheckTaskIncomeController extends BaseController {
|
|
|
|
|
if (qcCheckTaskIncome.getIncomeTime() == null) {
|
|
|
|
|
return error("[incomeTime]不能为空");
|
|
|
|
|
}
|
|
|
|
|
logger.info("来料检验任务生成开始================================");
|
|
|
|
|
logger.info("来料检验任务生成参数:" + JSONObject.toJSONString(qcCheckTaskIncome));
|
|
|
|
|
logger.info(qcCheckTaskIncome0.getFactoryCode() + "工厂来料检验任务生成开始================================");
|
|
|
|
|
logger.info(qcCheckTaskIncome0.getFactoryCode() + "工厂来料检验任务生成参数:" + JSONObject.toJSONString(qcCheckTaskIncome));
|
|
|
|
|
|
|
|
|
|
int r = qcCheckTaskIncomeService.insertQcCheckTaskIncome(qcCheckTaskIncome);
|
|
|
|
|
if (r > 0) {
|
|
|
|
|
return toAjax(r);
|
|
|
|
|
}
|
|
|
|
|
return error("添加失败:请检查物料的关联检测项");
|
|
|
|
|
return error(qcCheckTaskIncome0.getFactoryCode() + "工厂添加失败:请检查物料的关联检测项" );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|