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

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