添加自定义组件
parent
28745097e8
commit
73629bfd1f
@ -0,0 +1,117 @@
|
|||||||
|
package cn.estsh.i3plus.core.apiservice.controller.report;
|
||||||
|
|
||||||
|
import cn.estsh.i3plus.platform.common.tool.ClassTool;
|
||||||
|
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
|
||||||
|
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
|
||||||
|
import cn.estsh.i3plus.pojo.model.common.ClassFieldModel;
|
||||||
|
import cn.estsh.i3plus.pojo.model.common.ClassModel;
|
||||||
|
import cn.estsh.impp.framework.boot.util.ResultBean;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.persistence.Transient;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/impp/cloud/report")
|
||||||
|
@Api(description="报表服务")
|
||||||
|
public class CoreReportController {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(CoreReportController.class);
|
||||||
|
|
||||||
|
@Value("${impp.app.pojo-packages}.bean")
|
||||||
|
public String pojoPackagePath;
|
||||||
|
|
||||||
|
@GetMapping(value="/list-clz")
|
||||||
|
@ApiOperation(value="查询管理后台所有类",notes = "根据核心包路径列出所有类")
|
||||||
|
public BaseResultBean<ClassModel> listClz() {
|
||||||
|
LOGGER.info("【类路径:{}】",pojoPackagePath);
|
||||||
|
List<String> clzNameList = ClassTool.getClassName(pojoPackagePath, true);
|
||||||
|
List<ClassModel> clzList = new ArrayList<>(clzNameList.size());
|
||||||
|
Class tmpClz = null;
|
||||||
|
Api api = null;
|
||||||
|
ClassModel classModel = null;
|
||||||
|
for(String clzName : clzNameList){
|
||||||
|
try {
|
||||||
|
//注册类
|
||||||
|
tmpClz = Class.forName(clzName);
|
||||||
|
|
||||||
|
classModel = new ClassModel();
|
||||||
|
classModel.setPackageName(pojoPackagePath);
|
||||||
|
classModel.setClzFullName(clzName);
|
||||||
|
classModel.setClzSimpleName(tmpClz.getSimpleName());
|
||||||
|
|
||||||
|
api = (Api) tmpClz.getAnnotation(Api.class);
|
||||||
|
if(api != null) {
|
||||||
|
classModel.setClzDesc(api.value());
|
||||||
|
|
||||||
|
clzList.add(classModel);
|
||||||
|
}else{
|
||||||
|
//classModel.setClzDesc(clzName);
|
||||||
|
LOGGER.warn("不添加类:{},因为没有添加api描述", tmpClz);
|
||||||
|
}
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
LOGGER.error("【类:{}注册出错】",clzName,clzName,e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResultBean.success("获取类:" + clzList.size())
|
||||||
|
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
|
||||||
|
.setResultList(clzList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value="/pojo-property")
|
||||||
|
@ApiOperation(value="查询类所有属性")
|
||||||
|
public ResultBean<ClassFieldModel> testWms(@RequestParam("clzFullName") String clzFullName) {
|
||||||
|
LOGGER.info("【查询类属性:{}】",clzFullName);
|
||||||
|
|
||||||
|
ApiParam apiParam = null;
|
||||||
|
Transient tran = null;
|
||||||
|
List<ClassFieldModel> fieldModelList = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
Class tmpClz = Class.forName(clzFullName);
|
||||||
|
List<Field> fields = ClassTool.getAllFieldsList(tmpClz);
|
||||||
|
ClassFieldModel fieldModel = null;
|
||||||
|
for(Field f : fields){
|
||||||
|
tran = f.getAnnotation(Transient.class);
|
||||||
|
if(tran == null) {
|
||||||
|
// 临时对象不需要处理
|
||||||
|
fieldModel = new ClassFieldModel();
|
||||||
|
fieldModel.setPackageName(pojoPackagePath);
|
||||||
|
fieldModel.setClzFullName(clzFullName);
|
||||||
|
fieldModel.setClzSimpleName(tmpClz.getSimpleName());
|
||||||
|
fieldModel.setFieldName(f.getName());
|
||||||
|
|
||||||
|
apiParam = f.getAnnotation(ApiParam.class);
|
||||||
|
if(apiParam != null){
|
||||||
|
fieldModel.setFieldDesc(apiParam.value());
|
||||||
|
|
||||||
|
fieldModelList.add(fieldModel);
|
||||||
|
}else{
|
||||||
|
//fieldModel.setFieldDesc(fieldModel.getFieldName());
|
||||||
|
LOGGER.warn("不添加属性:{},因为没有添加api描述", f.getName());
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
LOGGER.info("【临时属性:{}】",f.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
LOGGER.error("【类:{}实例化出错】",clzFullName,e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResultBean.success("获取属性:" + fieldModelList.size())
|
||||||
|
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
|
||||||
|
.setResultList(fieldModelList);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue