Commit 9664a630 authored by 吴俊凯's avatar 吴俊凯

预案分类树提交

parent d015e7bd
package com.yeejoin.amos.fas.dao.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
/**
* The persistent class for the equipment database table.
*
*/
@Entity
@Table(name="c_plan_classify_tree")
@NamedQuery(name="PlanClassifyTree.findAll", query="SELECT e FROM PlanClassifyTree e")
@Data
public class PlanClassifyTree extends BasicEntity {
private static final long serialVersionUID = -6580123563351367727L;
/**
* 预案分类名称
*/
@Column(name="classify_name")
private String classifyName;
/**
* 预案分类名称
*/
@Column(name="parent_id")
private Long parentId;
/**
* 创建人
*/
@Column(name="creator")
private String creator;
/**
* 组织机构
*/
@Column(name="org_code")
private String orgCode;
}
\ No newline at end of file
package com.yeejoin.amos.fas.business.controller;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/contingencyPlan")
@Api("预案api")
public class ContingencyPlanController extends BaseController {
}
package com.yeejoin.amos.fas.business.controller;
import com.yeejoin.amos.fas.business.service.intfc.PlanClassifyTreeService;
import com.yeejoin.amos.fas.business.vo.PlanClassifyTreeVo;
import com.yeejoin.amos.fas.business.vo.ReginParams;
import com.yeejoin.amos.fas.core.util.CommonResponseUtil2;
import com.yeejoin.amos.fas.core.util.ResponseModel;
import com.yeejoin.amos.fas.dao.entity.PlanClassifyTree;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
@RestController
@RequestMapping("/api/planClassifyTree")
@Api("预案分类树api")
public class PlanClassifyTreeController extends BaseController {
@Autowired
private PlanClassifyTreeService planClassifyTreeService;
@ApiOperation(value = "创建分类")
@RequestMapping(value = "/save", method = RequestMethod.POST)
public ResponseModel create(@RequestBody PlanClassifyTree model) {
AgencyUserModel user = getUserInfo();
ReginParams reginParams = getSelectedOrgInfo();
String compCode = getOrgCode(reginParams);
model.setOrgCode(compCode);
model.setCreator(user.getUserId());
planClassifyTreeService.save(model);
return CommonResponseUtil2.success(model);
}
@ApiOperation(value = "修改分类")
@RequestMapping(value = "/update", method = RequestMethod.PUT)
public ResponseModel update(@RequestBody PlanClassifyTree model) {
AgencyUserModel user = getUserInfo();
ReginParams reginParams = getSelectedOrgInfo();
String compCode = getOrgCode(reginParams);
model.setOrgCode(compCode);
model.setCreator(user.getUserId());
planClassifyTreeService.save(model);
return CommonResponseUtil2.success(model);
}
@ApiOperation(value = "删除分类")
@RequestMapping(value = "/{ids}", method = RequestMethod.DELETE)
public ResponseModel delete(@PathVariable("ids") String ids) {
planClassifyTreeService.delete(ids);
return CommonResponseUtil2.success();
}
@ApiOperation(value = "查询分类树")
@RequestMapping(value = "/tree", method = RequestMethod.GET)
public ResponseModel getTree() {
Collection<PlanClassifyTreeVo> list = null;
try {
list = planClassifyTreeService.getTree();
}catch (Exception e){
e.printStackTrace();
System.out.println(e.getStackTrace().toString());
}
return CommonResponseUtil2.success(list);
}
}
package com.yeejoin.amos.fas.business.dao.mapper;
public interface PlanClassifyTreeMapper extends BaseMapper {
}
package com.yeejoin.amos.fas.business.dao.repository;
import com.yeejoin.amos.fas.dao.entity.PlanClassifyTree;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository("IPlanClassifyTreeDao")
public interface IPlanClassifyTreeDao extends BaseDao<PlanClassifyTree, Long> {
@Query(value = "select * from c_plan_classify_tree where parent_id = ?1",nativeQuery = true)
List<PlanClassifyTree> findByParentId(Long parentId);
}
package com.yeejoin.amos.fas.business.service.impl;
import com.yeejoin.amos.fas.business.service.intfc.ContingencyPlanService;
import org.springframework.stereotype.Service;
/**
*@program: YeeAmosFireAutoSysRoot
*@description: 预案实现类
*@author: wujunkai
*@create: 2021-01-14 14:59
*/
@Service("PlanClassifyTreeService")
public class ContingencyPlanServiceImpl implements ContingencyPlanService {
}
\ No newline at end of file
package com.yeejoin.amos.fas.business.service.impl;
import com.yeejoin.amos.fas.business.dao.repository.IPlanClassifyTreeDao;
import com.yeejoin.amos.fas.business.service.intfc.PlanClassifyTreeService;
import com.yeejoin.amos.fas.business.vo.PlanClassifyTreeVo;
import com.yeejoin.amos.fas.dao.entity.PlanClassifyTree;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.StringUtil;
import org.typroject.tyboot.core.foundation.utils.TreeBuilder;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.*;
/**
*@program: YeeAmosFireAutoSysRoot
*@description: 预案分类树实现类
*@author: wujunkai
*@create: 2021-01-14 14:59
*/
@Service("PlanClassifyTreeService")
public class PlanClassifyTreeServiceImpl implements PlanClassifyTreeService {
public static final Long ROOT = 0L;
@Autowired
private IPlanClassifyTreeDao planClassifyTreeDao;
@Override
public PlanClassifyTree save(PlanClassifyTree model) {
return planClassifyTreeDao.save(model);
}
@Override
public void delete(String ids) {
List<Long> seqs = StringUtil.String2LongList(ids);
for (Long seq : seqs) {
Optional<PlanClassifyTree> PlanClassifyTreeOpt = planClassifyTreeDao.findById(seq);
//所有子分类
List<PlanClassifyTree> childGroupSequenceList = getChildSequenceList(PlanClassifyTreeOpt.get());
planClassifyTreeDao.deleteAll(childGroupSequenceList);
}
}
@Override
public Collection<PlanClassifyTreeVo> getTree() {
List<PlanClassifyTree> list =planClassifyTreeDao.findAll();
List<PlanClassifyTreeVo> voList = new ArrayList<>();
for (PlanClassifyTree planClassifyTree:list) {
PlanClassifyTreeVo planClassifyTreeVo = new PlanClassifyTreeVo();
BeanUtils.copyProperties(planClassifyTree,planClassifyTreeVo);
voList.add(planClassifyTreeVo);
}
Map<Object, PlanClassifyTreeVo> map = Bean.listToMap(voList, "id", PlanClassifyTree.class);
SortedSet<PlanClassifyTreeVo> completeList = new TreeSet<>();
for (PlanClassifyTreeVo model : voList) {
completeList.addAll(buildWithParent(model, map));
}
return TreeBuilder.buildByRecursive(completeList, ROOT);
}
private List<PlanClassifyTreeVo> buildWithParent(PlanClassifyTreeVo groupModel, Map<Object, PlanClassifyTreeVo> map) {
List<PlanClassifyTreeVo> completeList = new ArrayList<>();
completeList.add(groupModel);
if (groupModel.getParentId().equals(ROOT)) {
completeList.add(groupModel);
return completeList;
}
PlanClassifyTreeVo parent = map.get(groupModel.getParentId());
if (ValidationUtil.isEmpty(parent)) {
parent = (PlanClassifyTreeVo) this.planClassifyTreeDao.findById(groupModel.getParentId()).get();
if (ValidationUtil.isEmpty(parent)) {
return completeList;
}
}
completeList.add(parent);
completeList.addAll(this.buildWithParent(parent, map));
return completeList;
}
/**
* 预案分类的子id
*
* @param planClassifyTree
* @return
*/
public List<PlanClassifyTree> getChildSequenceList(PlanClassifyTree planClassifyTree) {
List<Long> sequenceList = new ArrayList<>();
List<PlanClassifyTree> childList = new ArrayList<>();
this.getAllChildList(planClassifyTree, childList);
// for (KnowledgeDocCategoryModel tagGroupModel : childList) {
// sequenceList.add(tagGroupModel.getSequenceNbr());
// }
return childList;
}
private void getAllChildList(PlanClassifyTree currentPlanClassifyTree, List<PlanClassifyTree> resList) {
if (null == currentPlanClassifyTree) {
return;
}
Long parentId = currentPlanClassifyTree.getId();
List<PlanClassifyTree> childList = planClassifyTreeDao.findByParentId(parentId);
if (!childList.isEmpty()) {
for (PlanClassifyTree tagPlanClassifyTree : childList) {
this.getAllChildList(tagPlanClassifyTree, resList);
}
}
resList.add(currentPlanClassifyTree);
}
}
\ No newline at end of file
package com.yeejoin.amos.fas.business.service.intfc;
/**
* @author wjk
* @date 2021-01-14
* 预案操作
*/
public interface ContingencyPlanService {
}
package com.yeejoin.amos.fas.business.service.intfc;
import com.yeejoin.amos.fas.business.vo.PlanClassifyTreeVo;
import com.yeejoin.amos.fas.dao.entity.PlanClassifyTree;
import java.util.Collection;
/**
* @author wjk
* @date 2021-01-14
* 预案分类树
*/
public interface PlanClassifyTreeService {
PlanClassifyTree save(PlanClassifyTree model);
void delete(String ids);
Collection<PlanClassifyTreeVo> getTree();
}
package com.yeejoin.amos.fas.business.vo;
import com.yeejoin.amos.fas.dao.entity.PlanClassifyTree;
import org.typroject.tyboot.core.foundation.utils.TreeNode;
import java.util.Collection;
import java.util.HashSet;
/**
*@program: YeeAmosFireAutoSysRoot
*@description: 预案分类树
*@author: wujunkai
*@create: 2021-01-14 11:37
*/
public class PlanClassifyTreeVo extends PlanClassifyTree implements TreeNode<PlanClassifyTreeVo,Long> {
private Collection<PlanClassifyTreeVo> children = new HashSet<>();
@Override
public Long getMyParentId() {
return this.getParentId();
}
@Override
public Long getMyId() {
return this.getId();
}
@Override
public Collection<PlanClassifyTreeVo> getChildren() {
return children;
}
@Override
public void setChildren(Collection<PlanClassifyTreeVo> collection) {
this.children = children;
}
@Override
public int compareTo(PlanClassifyTreeVo planClassifyTree) {
return this.getClassifyName().compareTo(planClassifyTree.getClassifyName());
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment