demand: TMS-运输管理-漏组批次订单_新-新增一键重刷接口

This commit is contained in:
aike 2025-12-05 10:41:39 +08:00
parent 7df28c0e47
commit 06fc5297bb

View File

@ -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());
}
}
}