86 lines
3.3 KiB
Java
86 lines
3.3 KiB
Java
package com.vverp.controller.admin;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.vverp.annotation.Module;
|
|
import com.vverp.entity.Admin;
|
|
import com.vverp.entity.BaseEntity;
|
|
import com.vverp.entity.ExtraField;
|
|
import com.vverp.moli.util.RespData;
|
|
import com.vverp.service.AdminService;
|
|
import com.vverp.service.ExtraFieldService;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.springframework.beans.factory.config.BeanDefinition;
|
|
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
|
|
import org.springframework.core.type.filter.AssignableTypeFilter;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.ui.ModelMap;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.*;
|
|
|
|
/**
|
|
* @author
|
|
* @date 2020/3/11 8:38 下午
|
|
*/
|
|
@Controller("adminExtraFieldController")
|
|
@RequestMapping("/admin/extraField")
|
|
public class ExtraFieldController extends BaseController {
|
|
|
|
@Resource
|
|
private ExtraFieldService extraFieldService;
|
|
@Resource
|
|
private AdminService adminService;
|
|
|
|
@RequestMapping("/list")
|
|
public String list(ModelMap modelMap) throws ClassNotFoundException {
|
|
ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
|
|
provider.addIncludeFilter(new AssignableTypeFilter(BaseEntity.class));
|
|
Set<BeanDefinition> components = provider.findCandidateComponents("com.vverp.entity");
|
|
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
for (BeanDefinition component : components) {
|
|
Map<String, Object> map = new HashMap<>();
|
|
Class cls = Class.forName(component.getBeanClassName());
|
|
if (!cls.getName().equals("com.vverp.entity.PurchaseApplyOrderItem")
|
|
&& !cls.getName().equals("com.vverp.entity.Supplier")
|
|
&& !cls.getName().equals("com.vverp.entity.MaterialOrderItem")){
|
|
continue;
|
|
}
|
|
String key = cls.getSimpleName();
|
|
key = key.substring(0, 1).toLowerCase() + key.substring(1);
|
|
Module module = (Module) cls.getAnnotation(Module.class);
|
|
if (module == null || StringUtils.isBlank(module.name())) {
|
|
continue;
|
|
}
|
|
|
|
map.put("key", key);
|
|
map.put("name", module.name());
|
|
list.add(map);
|
|
}
|
|
|
|
modelMap.addAttribute("list", list);
|
|
return "extraField/list";
|
|
}
|
|
|
|
@RequestMapping("/dialog/edit")
|
|
public String dialogEdit(ModelMap modelMap, String space, String title) {
|
|
Admin admin = adminService.getCurrent();
|
|
modelMap.addAttribute("space", space);
|
|
modelMap.addAttribute("title", title);
|
|
modelMap.addAttribute("list", extraFieldService.initData(space,admin.getNowProgress()));
|
|
return "/extraField/dialog/edit";
|
|
}
|
|
|
|
@RequestMapping("/extend")
|
|
@ResponseBody
|
|
public RespData extend(String extraFields, String space) {
|
|
Admin admin = adminService.getCurrent();
|
|
List<ExtraField> extraFieldList = JSONObject.parseArray(extraFields, ExtraField.class);
|
|
extraFieldService.update(extraFieldList, space,admin.getNowProgress());
|
|
return RespData.success();
|
|
}
|
|
|
|
}
|