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