demand: TMS-运输管理-漏组批次订单_新-新增一键重刷接口
This commit is contained in:
parent
7df28c0e47
commit
06fc5297bb
@ -1,8 +1,13 @@
|
||||
package com.xdadan.erp.web.emis;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.xdadan.erp.common.core.redis.RedissonService;
|
||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@ -26,6 +31,7 @@ import com.xdadan.erp.common.core.page.TableDataInfo;
|
||||
*
|
||||
* @author heyu
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/emis/emisTmsSiteBatchMiss")
|
||||
public class EmisTmsSiteBatchMissController extends EmisBaseController {
|
||||
@ -33,6 +39,9 @@ public class EmisTmsSiteBatchMissController extends EmisBaseController {
|
||||
@Autowired
|
||||
private IEmisTmsSiteBatchMissService emisTmsSiteBatchMissService;
|
||||
|
||||
@Autowired
|
||||
RedissonService redissonService;
|
||||
|
||||
/**
|
||||
* 查询TMS漏组批次信息列表
|
||||
*/
|
||||
@ -282,4 +291,50 @@ public class EmisTmsSiteBatchMissController extends EmisBaseController {
|
||||
emisTmsSiteBatchMissService.cancelConfirmBatchV2(billCodes);
|
||||
return AjaxResult.success("取消确认成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 一键重算-V2
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/autoScanSiteBatchV2")
|
||||
@PreAuthorize("@ss.hasPermi('emis:emisTmsSiteBatchMiss:autoScanSiteBatchV2')")
|
||||
public AjaxResult autoScanSiteBatchV2(String lineCode) {
|
||||
// 检查员工代码权限
|
||||
String empCode = getLoginUser().getUser().getEmpCode();
|
||||
Set<String> allowedEmpCodes = new HashSet<>(Arrays.asList("88888059", "88888083", "88888102", "88888112"));
|
||||
if (empCode == null || !allowedEmpCodes.contains(empCode)) {
|
||||
log.warn("autoScanSiteBatchV2 access denied for empCode: {}", empCode);
|
||||
return AjaxResult.error("您未被授权,如确有需要,请联系IT处理");
|
||||
}
|
||||
|
||||
String statusKey = "autoScanSiteBatchV2_status";
|
||||
log.info("autoScanSiteBatchV2 start");
|
||||
|
||||
// 检查任务是否正在执行
|
||||
String currentStatus = redissonService.getStr(statusKey);
|
||||
if ("RUNNING".equals(currentStatus)) {
|
||||
log.warn("autoScanSiteBatchV2 is already running, request rejected");
|
||||
return AjaxResult.error("任务正在执行中,请稍后再试");
|
||||
}
|
||||
|
||||
try {
|
||||
// 设置任务状态为运行中,设置较长的过期时间(30分钟)
|
||||
// 这样即使异步任务没有正确清除状态,也会在30分钟后自动过期
|
||||
redissonService.setStr(statusKey, "RUNNING", 1800);
|
||||
|
||||
// 异步执行任务
|
||||
emisTmsSiteBatchMissService.autoScanSiteBatchV2(lineCode);
|
||||
log.info("autoScanSiteBatchV2 async task started");
|
||||
|
||||
return AjaxResult.success("异步任务已启动,请稍后查看执行结果");
|
||||
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
log.error("autoScanSiteBatchV2 exception:" + ex.getMessage());
|
||||
// 如果启动失败,清除状态
|
||||
redissonService.setStr(statusKey, "", 0);
|
||||
return AjaxResult.error("任务启动失败:" + ex.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user