package cn.cslg.pas.controller; import cn.cslg.pas.common.core.base.Constants; import cn.cslg.pas.common.dto.AllFieldOrderDTO; import cn.cslg.pas.common.dto.business.CustomFieldDTO; import cn.cslg.pas.common.dto.business.UpdateCustomFieldDTO; import cn.cslg.pas.common.dto.es.EsCustomFieldDTO; import cn.cslg.pas.common.dto.es.EsQueryPatentFieldsDTO; import cn.cslg.pas.common.dto.es.QueryEsCustomFieldDTO; import cn.cslg.pas.common.model.cronModel.Records; import cn.cslg.pas.common.model.request.StringRequest; import cn.cslg.pas.common.utils.Response; import cn.cslg.pas.common.vo.business.AllCustomFieldVO; import cn.cslg.pas.common.vo.es.EsCustomFieldBatchVO; import cn.cslg.pas.common.vo.es.EsPatentFieldsVO; import cn.cslg.pas.exception.ConditionException; import cn.cslg.pas.exception.UnLoginException; import cn.cslg.pas.exception.XiaoShiException; import cn.cslg.pas.factorys.businessFactory.Business; import cn.cslg.pas.factorys.businessFactory.BusinessFactory; import cn.cslg.pas.service.business.CustomFieldService; import cn.cslg.pas.service.business.es.EsCustomFieldService; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 自定义栏位Controller层 * * @Author xiexiang * @Date 2023/11/13 */ @Slf4j @RequestMapping(Constants.API_XiaoSHI + "/customField") @RestController public class CustomFieldController { @Autowired private BusinessFactory businessFactory; @Autowired private CustomFieldService customFieldService; @Autowired private EsCustomFieldService esCustomFieldService; @Operation(summary = "查询自定义栏位") @PostMapping("/queryCustomField") public Response queryCustomField(@RequestBody StringRequest stringRequest) throws Exception { Business business = businessFactory.getClass("customFieldService"); Records records = (Records) business.queryMessage(stringRequest); return Response.success(records); } @Operation(summary = "新增自定义栏位") @PostMapping("/addCustomField") public Response addCustomField(@RequestBody CustomFieldDTO customFieldDTO) throws Exception { if (customFieldDTO != null) { Business business = businessFactory.getClass("customFieldService"); Integer id = null; try { id = (Integer) business.addMessage(customFieldDTO); } catch (Exception e) { if (e instanceof XiaoShiException) { return Response.error(e.getMessage()); } else if (e instanceof UnLoginException) { return Response.unLogin(e.getMessage()); } else if (e instanceof ConditionException) { return Response.conditionError(e.getMessage()); } } return Response.success(id); } else { return Response.error("网络异常"); } } @Operation(summary = "更新自定义栏位") @PostMapping("/updateCustomField") public Response updateCustomField(@RequestBody UpdateCustomFieldDTO updateCustomFieldDTO) throws Exception { if (updateCustomFieldDTO != null) { Business business = businessFactory.getClass("customFieldService"); Integer id = null; try { id = (Integer) business.updateMessage(updateCustomFieldDTO); } catch (Exception e) { if (e instanceof XiaoShiException) { return Response.error(e.getMessage()); } else if (e instanceof UnLoginException) { return Response.unLogin(e.getMessage()); } else if (e instanceof ConditionException) { return Response.conditionError(e.getMessage()); } } return Response.success(id); } else { return Response.error("网络异常"); } } @Operation(summary = "删除自定义栏位") @PostMapping("/deleteCustomField") public Response deleteCustomField(@RequestBody List ids) throws Exception { Business business = businessFactory.getClass("customFieldService"); try { business.deleteMessage(ids); } catch (IOException e) { return Response.error(e.getMessage()); } return Response.success("删除成功"); } @Operation(summary = "查询专题库的所有标引栏位") @GetMapping("/getAllPatentCustomField") public Response getAllPatentCustomField(Integer projectId, Integer taskId) throws Exception { Records records = new Records(); List customFieldVOS = new ArrayList<>(); if (taskId != null) { customFieldVOS = customFieldService.getAllTaskCustomField(taskId); } else { customFieldVOS = customFieldService.getAllProjectCustomField(projectId); } records.setData(customFieldVOS); return Response.success(records); } @Operation(summary = "查询栏位值") @PostMapping("/getCustomFieldValues") public Response getCustomFieldValues(@RequestBody QueryEsCustomFieldDTO queryEsCustomFieldDTO) throws Exception { Records records = customFieldService.getCustomFieldValues(queryEsCustomFieldDTO); return Response.success(records); } @Operation(summary = "保存自定义栏位顺序") @PostMapping("/addAllPatentCustomFieldOrder") public Response addAllPatentCustomFieldOrder(@RequestBody AllFieldOrderDTO allFieldOrderDTO) throws Exception { Records records = customFieldService.addAllPatentCustomFieldOrder(allFieldOrderDTO); return Response.success(records); } @PostMapping("/addCustomFieldValue") @Operation(summary = "添加标引") public Response addCustomFieldValue(@RequestBody EsCustomFieldDTO vo) throws Exception { String field = esCustomFieldService.addCustomField(vo); Records records = new Records(); records.setData(field); return Response.success(records); } @PostMapping("/batchAddCustomField") @Operation(summary = "标引/批量标引添加") public Response batchAddCustomField(@RequestBody EsCustomFieldBatchVO vo) throws Exception { List list = esCustomFieldService.batchAddCustomField(vo); Records records = new Records(); records.setData(list); return Response.success(records); } @PostMapping("/getPatentFields") @Operation(summary = "批量获得专利的自定义栏位和值") public Response getPatentFields(@RequestBody EsQueryPatentFieldsDTO esQueryPatentFieldsDTO) throws Exception { Records records = new Records(); try { List list = esCustomFieldService.getPatentFields(esQueryPatentFieldsDTO); records.setData(list); } catch (Exception e){ e.printStackTrace(); return Response.error(e.getMessage()); } return Response.success(records); } }