package jnpf.limsController;
|
|
import cn.dev33.satoken.annotation.SaCheckLogin;
|
import cn.dev33.satoken.same.SaSameUtil;
|
import jnpf.base.ActionResult;
|
import jnpf.base.UserInfo;
|
import jnpf.lims.api.TestWorkItemSnapshotApi;
|
import jnpf.lims.api.model.TestWorkItemSnapshotBatch;
|
import jnpf.lims.api.model.TestWorkItemSnapshotRequest;
|
import jnpf.lims.api.model.TestWorkItemSnapshotActorRequest;
|
import jnpf.lims.api.model.TestWorkItemRequestIdentityActorRequest;
|
import jnpf.lims.api.model.TestWorkItemRequestIdentityBatch;
|
import jnpf.limsService.LimsTestWorkItemActorSnapshotService;
|
import jnpf.limsService.LimsTestWorkItemRequestIdentityActorService;
|
import jnpf.limsService.LimsTestWorkItemSnapshotService;
|
import jnpf.util.NoDataSourceBind;
|
import jnpf.util.UserProvider;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
@RestController
|
@RequestMapping("/Internal/lims/testWorkItems")
|
public class LimsTestWorkItemSnapshotController implements TestWorkItemSnapshotApi {
|
|
private final CurrentUser currentUser;
|
private final LimsTestWorkItemSnapshotService snapshotService;
|
private final LimsTestWorkItemActorSnapshotService actorSnapshotService;
|
private final LimsTestWorkItemRequestIdentityActorService actorIdentityService;
|
|
@Autowired
|
public LimsTestWorkItemSnapshotController(LimsTestWorkItemSnapshotService snapshotService,
|
LimsTestWorkItemActorSnapshotService actorSnapshotService,
|
LimsTestWorkItemRequestIdentityActorService actorIdentityService) {
|
this(UserProvider::getUser, snapshotService, actorSnapshotService, actorIdentityService);
|
}
|
|
LimsTestWorkItemSnapshotController(CurrentUser currentUser,
|
LimsTestWorkItemSnapshotService snapshotService,
|
LimsTestWorkItemActorSnapshotService actorSnapshotService,
|
LimsTestWorkItemRequestIdentityActorService actorIdentityService) {
|
this.currentUser = currentUser;
|
this.snapshotService = snapshotService;
|
this.actorSnapshotService = actorSnapshotService;
|
this.actorIdentityService = actorIdentityService;
|
}
|
|
@Override
|
@PostMapping("/snapshots")
|
@SaCheckLogin
|
public ActionResult<TestWorkItemSnapshotBatch> snapshots(
|
@RequestBody TestWorkItemSnapshotRequest request) {
|
UserInfo user = currentUser.get();
|
String tenantId = user != null && StringUtils.hasText(user.getTenantId())
|
? user.getTenantId().trim() : "0";
|
String userId = user != null && StringUtils.hasText(user.getUserId())
|
? user.getUserId().trim() : null;
|
return ActionResult.success("检验任务快照读取成功",
|
snapshotService.resolve(request, tenantId, userId));
|
}
|
|
@Override
|
@PostMapping("/snapshots/asActor")
|
@NoDataSourceBind
|
public ActionResult<TestWorkItemSnapshotBatch> snapshotsAsActor(
|
@RequestBody TestWorkItemSnapshotActorRequest actor) {
|
SaSameUtil.checkCurrentRequestToken();
|
return ActionResult.success("检验任务快照读取成功", actorSnapshotService.resolve(actor));
|
}
|
|
@Override
|
@PostMapping("/requestIdentities/asActor")
|
@NoDataSourceBind
|
public ActionResult<TestWorkItemRequestIdentityBatch> requestIdentitiesAsActor(
|
@RequestBody TestWorkItemRequestIdentityActorRequest actor) {
|
SaSameUtil.checkCurrentRequestToken();
|
return ActionResult.success("检验项请验单身份读取成功",
|
actorIdentityService.resolve(actor));
|
}
|
|
@FunctionalInterface
|
interface CurrentUser {
|
UserInfo get();
|
}
|
|
}
|