You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AEG_Development/TML维护Range值/DSGetProjectAttributeManage...

131 lines
5.6 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.tml.projectAttrManagement;
import com.dassault_systemes.platform.restServices.RestService;
import com.tml.projectAttrManagement.dto.AddRangeRequest;
import com.tml.projectAttrManagement.dto.DeleteRangeRequest;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.Response;
import matrix.db.JPO;
import matrix.util.MatrixException;
import java.util.logging.Logger;
@Path("/getProjectAttr")
public class DSGetProjectAttributeManagementController extends RestService {
private static final Logger LOGGER = Logger.getLogger(DSGetProjectAttributeManagementController.class.getName());
@GET
@Path("/getAttrInfo")
public Response getInfo(@Context HttpServletRequest request,
@QueryParam("projectType") String projectAttr) {
return this.Info(request, projectAttr);
}
// 2. 添加方法POST- 添加新数据
@POST
@Path("/add")
@Consumes("application/json")
public Response addRangeValue(@Context HttpServletRequest request,
AddRangeRequest addRequest) {
if (addRequest == null ||
addRequest.getAttrValue() == null || addRequest.getAttrValue().isEmpty() ||
addRequest.getAttrRange() == null || addRequest.getAttrRange().isEmpty() ||
addRequest.getAttrRangeDes() == null || addRequest.getAttrRangeDes().isEmpty()) {
return Response.status(Response.Status.BAD_REQUEST)
.entity("{\"code\":400,\"message\":\"参数不完整\"}")
.type("application/json")
.build();
}
matrix.db.Context context = this.getAuthenticatedContext(request, false);
try {
String[] args = {
addRequest.getAttrValue(),
addRequest.getAttrRange(),
addRequest.getAttrRangeDes()
};
String result = JPO.invoke(context, "TMLProjectAttrManagement", null,
"addRangeValue", args, String.class);
LOGGER.info("添加范围值成功:" + addRequest.getAttrRange() + " -> " + addRequest.getAttrRangeDes());
return Response.status(Response.Status.OK)
.entity("{\"code\":200,\"message\":\"" + result + "\",\"data\":{\"key\":\"" +
addRequest.getAttrRange() + "\",\"value\":\"" + addRequest.getAttrRangeDes() + "\"}}")
.type("application/json")
.build();
} catch (MatrixException e) {
LOGGER.severe("添加范围值失败:" + e.getMessage());
return Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.entity("{\"code\":500,\"message\":\"添加失败:" + e.getMessage() + "\"}")
.type("application/json")
.build();
}
}
// 3. 删除方法DELETE- 删除数据
@DELETE
@Path("/delete")
@Consumes("application/json")
public Response deleteRangeValue(@Context HttpServletRequest request,
DeleteRangeRequest deleteRequest) {
if (deleteRequest == null ||
deleteRequest.getAttrValue() == null || deleteRequest.getAttrValue().isEmpty() ||
deleteRequest.getAttrRange() == null || deleteRequest.getAttrRange().isEmpty()) {
return Response.status(Response.Status.BAD_REQUEST)
.entity("{\"code\":400,\"message\":\"参数不完整\"}")
.type("application/json")
.build();
}
matrix.db.Context context = this.getAuthenticatedContext(request, false);
try {
String[] args = {
deleteRequest.getAttrValue(),
deleteRequest.getAttrRange()
};
String result = JPO.invoke(context, "TMLProjectAttrManagement", null,
"delRangeValue", args, String.class);
LOGGER.info("删除范围值成功:" + deleteRequest.getAttrRange());
return Response.status(Response.Status.OK)
.entity("{\"code\":200,\"message\":\"" + result + "\",\"data\":{\"deletedKey\":\"" +
deleteRequest.getAttrRange() + "\"}}")
.type("application/json")
.build();
} catch (MatrixException e) {
LOGGER.severe("删除范围值失败:" + e.getMessage());
return Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.entity("{\"code\":500,\"message\":\"删除失败:" + e.getMessage() + "\"}")
.type("application/json")
.build();
}
}
private Response Info(HttpServletRequest request, String projectAttr) {
if(projectAttr == null || projectAttr.isEmpty()) {
return Response.status(Response.Status.BAD_REQUEST).entity("Missing project type").build();
}
matrix.db.Context context = this.getAuthenticatedContext(request, false);
String[] itemValue = projectAttr.split("\\|");
try {
String resultJson = JPO.invoke(context, "TMLProjectAttrManagement", null, "getTrialProductSeries", itemValue, String.class);
return Response.status(Response.Status.OK).entity(resultJson).build();
} catch (MatrixException e) {
throw new RuntimeException(e);
}
}
}