|
@ -8,6 +8,8 @@ import com.epmet.dto.indexcal.CalculateCommonFormDTO; |
|
|
import com.epmet.service.evaluationindex.indexcal.CpcIndexCalculateService; |
|
|
import com.epmet.service.evaluationindex.indexcal.CpcIndexCalculateService; |
|
|
import com.epmet.service.evaluationindex.indexcal.IndexCalculateService; |
|
|
import com.epmet.service.evaluationindex.indexcal.IndexCalculateService; |
|
|
import com.epmet.util.DimIdGenerator; |
|
|
import com.epmet.util.DimIdGenerator; |
|
|
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.web.bind.annotation.PostMapping; |
|
|
import org.springframework.web.bind.annotation.PostMapping; |
|
@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping; |
|
|
import org.springframework.web.bind.annotation.RestController; |
|
|
import org.springframework.web.bind.annotation.RestController; |
|
|
|
|
|
|
|
|
import java.util.Date; |
|
|
import java.util.Date; |
|
|
|
|
|
import java.util.concurrent.*; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 指标计算controller |
|
|
* 指标计算controller |
|
@ -23,9 +26,16 @@ import java.util.Date; |
|
|
* @author liujianjun@elink-cn.com |
|
|
* @author liujianjun@elink-cn.com |
|
|
* @date 2020/8/24 14:38 |
|
|
* @date 2020/8/24 14:38 |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
@Slf4j |
|
|
@RestController |
|
|
@RestController |
|
|
@RequestMapping("indexcalculate") |
|
|
@RequestMapping("indexcalculate") |
|
|
public class IndexCalculateController { |
|
|
public class IndexCalculateController { |
|
|
|
|
|
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() |
|
|
|
|
|
.setNameFormat("indexcalculate-pool-%d").build(); |
|
|
|
|
|
ExecutorService singleThreadPool = new ThreadPoolExecutor(1, 1, |
|
|
|
|
|
0L, TimeUnit.MILLISECONDS, |
|
|
|
|
|
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
@Autowired |
|
|
private IndexCalculateService indexCalculateService; |
|
|
private IndexCalculateService indexCalculateService; |
|
@ -44,12 +54,15 @@ public class IndexCalculateController { |
|
|
@ExternalAppRequestAuth |
|
|
@ExternalAppRequestAuth |
|
|
@PostMapping("all") |
|
|
@PostMapping("all") |
|
|
public Result<Boolean> indexCalculate(ExternalAppRequestParam externalAppRequestParam, @RequestBody CalculateCommonFormDTO formDTO) { |
|
|
public Result<Boolean> indexCalculate(ExternalAppRequestParam externalAppRequestParam, @RequestBody CalculateCommonFormDTO formDTO) { |
|
|
formDTO.setCustomerId(externalAppRequestParam.getCustomerId()); |
|
|
singleThreadPool.execute(() -> { |
|
|
Boolean aBoolean = indexCalculateService.indexCalculate(formDTO); |
|
|
formDTO.setCustomerId(externalAppRequestParam.getCustomerId()); |
|
|
if (aBoolean) { |
|
|
long start = System.currentTimeMillis(); |
|
|
return new Result<Boolean>().ok(true); |
|
|
Boolean aBoolean = indexCalculateService.indexCalculate(formDTO); |
|
|
} |
|
|
if (aBoolean) { |
|
|
return new Result<Boolean>().error("指标计算失败"); |
|
|
log.error("全部指标计算完成,总耗时:{}秒", (System.currentTimeMillis() - start) / 1000); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
return new Result<Boolean>().ok(true); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@PostMapping("reAll") |
|
|
@PostMapping("reAll") |
|
|