|
@@ -0,0 +1,211 @@
|
|
|
+package org.jeecg.modules.basedata.controller;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiImplicitParam;
|
|
|
+import io.swagger.annotations.ApiImplicitParams;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.jeecg.common.api.vo.Result;
|
|
|
+import org.jeecg.common.aspect.annotation.NotDuplicate;
|
|
|
+import org.jeecg.common.constant.CommonConstant;
|
|
|
+import org.jeecg.common.dto.basedata.ArchivesMilestoneListRespDTO;
|
|
|
+import org.jeecg.common.dto.basedata.ArchivesPostReqDTO;
|
|
|
+import org.jeecg.modules.basedata.entity.BaseArchivesMilestone;
|
|
|
+import org.jeecg.modules.basedata.service.IBaseArchivesMilestoneService;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+import org.springframework.validation.BindingResult;
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Author jihaosen
|
|
|
+ * @date 2021/2/24
|
|
|
+ */
|
|
|
+@Api(value = "里程碑档案接口")
|
|
|
+@RestController
|
|
|
+@RequestMapping("/basedata/baseArchivesMilestone")
|
|
|
+@Slf4j
|
|
|
+public class BaseArchivesMilestoneController {
|
|
|
+ @Autowired
|
|
|
+ private IBaseArchivesMilestoneService baseArchivesMilestoneService;
|
|
|
+
|
|
|
+ @ApiOperation(value = "里程碑档案列表查询接口", notes = "里程碑档案列表查询")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="pkOrg", value="组织",required=false, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="typeId", value="类型id",required=false, dataType="String"),
|
|
|
+
|
|
|
+ })
|
|
|
+ @GetMapping(value = "/list")
|
|
|
+ public Result<List<ArchivesMilestoneListRespDTO>> queryPageList(String pkOrg, String typeId) {
|
|
|
+ Result<List<ArchivesMilestoneListRespDTO>> result = new Result<List<ArchivesMilestoneListRespDTO>>();
|
|
|
+ QueryWrapper<BaseArchivesMilestone> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("del_flag", CommonConstant.STATUS_NORMAL.toString());
|
|
|
+ if(StringUtils.isNotBlank(pkOrg)){
|
|
|
+ queryWrapper.eq("pk_org", pkOrg);
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(typeId)){
|
|
|
+ queryWrapper.eq("type_id", typeId);
|
|
|
+ }
|
|
|
+ queryWrapper.orderByAsc("create_time");
|
|
|
+ List<BaseArchivesMilestone> list = baseArchivesMilestoneService.list(queryWrapper);
|
|
|
+ List<ArchivesMilestoneListRespDTO> respDTOS = getTreeList(list);
|
|
|
+ result.setSuccess(true);
|
|
|
+ result.setResult(respDTOS);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "新增里程碑档案接口", notes = "新增里程碑档案")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="parentId", value="父节点",required=true, dataType="String", defaultValue = "0"),
|
|
|
+ @ApiImplicitParam(name="code", value="编码",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="name", value="名称",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="typeId", value="类别id(来源数据字典)",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="type", value="类别",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="pkOrg", value="组织",required=false, dataType="String"),
|
|
|
+ })
|
|
|
+ @PostMapping(value = "/add")
|
|
|
+ @NotDuplicate
|
|
|
+ public Result<BaseArchivesMilestone> add(@RequestBody BaseArchivesMilestone baseArchivesMilestone, BindingResult bindingResult) {
|
|
|
+ Result<BaseArchivesMilestone> result = new Result<BaseArchivesMilestone>();
|
|
|
+ try {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ if (bindingResult.hasErrors()){
|
|
|
+ //记录错误信息
|
|
|
+ bindingResult.getAllErrors().stream().forEach(error -> sb.append(error.getDefaultMessage() + "<br/>"));
|
|
|
+ result.error500(sb.toString());
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ baseArchivesMilestone.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
|
|
|
+ baseArchivesMilestoneService.save(baseArchivesMilestone);
|
|
|
+ result.success("添加成功!");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ log.info(e.getMessage());
|
|
|
+ result.error500("操作失败:"+e.getMessage());
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "编辑里程碑档案接口", notes = "编辑里程碑档案")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="parentId", value="父节点",required=true, dataType="String", defaultValue = "0"),
|
|
|
+ @ApiImplicitParam(name="parentId", value="父节点",required=true, dataType="String", defaultValue = "0"),
|
|
|
+ @ApiImplicitParam(name="code", value="编码",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="name", value="名称",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="typeId", value="类别id(来源数据字典)",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="type", value="类别",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="pkOrg", value="组织",required=false, dataType="String"),
|
|
|
+ })
|
|
|
+ @PostMapping(value = "/edit")
|
|
|
+ @NotDuplicate
|
|
|
+ public Result<BaseArchivesMilestone> edit(@RequestBody BaseArchivesMilestone baseArchivesMilestone) {
|
|
|
+ Result<BaseArchivesMilestone> result = new Result<BaseArchivesMilestone>();
|
|
|
+ BaseArchivesMilestone baseArchivesMilestoneEntity = baseArchivesMilestoneService.getById(baseArchivesMilestone.getId());
|
|
|
+ if(baseArchivesMilestoneEntity==null) {
|
|
|
+ result.error500("未找到对应实体");
|
|
|
+ }else {
|
|
|
+ boolean ok = baseArchivesMilestoneService.updateById(baseArchivesMilestone);
|
|
|
+ if(ok) {
|
|
|
+ result.success("修改成功!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "删除里程碑档案接口", notes = "根据id删除里程碑档案(逻辑删除)")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="id", value="id" ,required=true, dataType="String", defaultValue = "0"),
|
|
|
+ })
|
|
|
+ @PostMapping(value = "/delete")
|
|
|
+ public Result<BaseArchivesMilestone> delete(@RequestBody ArchivesPostReqDTO archivesPostReqDTO) {
|
|
|
+ Result<BaseArchivesMilestone> result = new Result<BaseArchivesMilestone>();
|
|
|
+ BaseArchivesMilestone baseArchivesMilestone = baseArchivesMilestoneService.getById(archivesPostReqDTO.getId());
|
|
|
+ if(baseArchivesMilestone==null) {
|
|
|
+ result.error500("未找到对应实体");
|
|
|
+ }else {
|
|
|
+ baseArchivesMilestone.setDelFlag(CommonConstant.DEL_FLAG_1.toString());
|
|
|
+ boolean ok = baseArchivesMilestoneService.updateById(baseArchivesMilestone);
|
|
|
+ if(ok) {
|
|
|
+ result.success("删除成功!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "通过id查询里程碑档案接口", notes = "通过id查询里程碑档案")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="id", value="id" ,required=true, dataType="String", defaultValue = "0"),
|
|
|
+ })
|
|
|
+ @GetMapping(value = "/queryById")
|
|
|
+ public Result<BaseArchivesMilestone> queryById(@RequestParam(name="id",required=true) String id) {
|
|
|
+ Result<BaseArchivesMilestone> result = new Result<BaseArchivesMilestone>();
|
|
|
+ BaseArchivesMilestone baseArchivesMilestone = baseArchivesMilestoneService.getById(id);
|
|
|
+ if(baseArchivesMilestone==null) {
|
|
|
+ result.error500("未找到对应实体");
|
|
|
+ }else {
|
|
|
+ result.setResult(baseArchivesMilestone);
|
|
|
+ result.setSuccess(true);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @desc 将里程碑档案列表转成树状结构
|
|
|
+ */
|
|
|
+ private List<ArchivesMilestoneListRespDTO> getTreeList(List<BaseArchivesMilestone> list) {
|
|
|
+ List<ArchivesMilestoneListRespDTO> resp = Lists.newArrayList();
|
|
|
+ //根据parentId分组
|
|
|
+ Map<String, List<BaseArchivesMilestone>> postMap = list.stream().collect(Collectors.groupingBy(BaseArchivesMilestone :: getParentId));
|
|
|
+ List<BaseArchivesMilestone> baseArchivesMilestones = postMap.get("0");
|
|
|
+ if(CollectionUtils.isEmpty(baseArchivesMilestones)){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ for(BaseArchivesMilestone baseArchivesMilestone : baseArchivesMilestones){
|
|
|
+ ArchivesMilestoneListRespDTO archivesMilestoneListRespDTO = new ArchivesMilestoneListRespDTO(baseArchivesMilestone);
|
|
|
+ archivesMilestoneListRespDTO.setChildren(getChildes(list, archivesMilestoneListRespDTO.getKey(), postMap));
|
|
|
+ //判断是否为末节点
|
|
|
+ List<BaseArchivesMilestone> posts = postMap.get(archivesMilestoneListRespDTO.getKey());
|
|
|
+ if(CollectionUtils.isEmpty(posts)){
|
|
|
+ archivesMilestoneListRespDTO.setIsLeaf(true);
|
|
|
+ }
|
|
|
+ resp.add(archivesMilestoneListRespDTO);
|
|
|
+ }
|
|
|
+ return resp;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @desc 获取子节点数据
|
|
|
+ */
|
|
|
+ private List<ArchivesMilestoneListRespDTO> getChildes(List<BaseArchivesMilestone> list, String key, Map<String, List<BaseArchivesMilestone>> postMap) {
|
|
|
+ List<ArchivesMilestoneListRespDTO> resp = Lists.newArrayList();
|
|
|
+ for(BaseArchivesMilestone baseArchivesMilestone : list){
|
|
|
+ if(baseArchivesMilestone.getParentId().equals(key)){
|
|
|
+ ArchivesMilestoneListRespDTO archivesMilestoneListRespDTO = new ArchivesMilestoneListRespDTO(baseArchivesMilestone);
|
|
|
+ archivesMilestoneListRespDTO.setChildren(getChildes(list, archivesMilestoneListRespDTO.getKey(), postMap));
|
|
|
+ //判断是否为末节点
|
|
|
+ List<BaseArchivesMilestone> posts = postMap.get(archivesMilestoneListRespDTO.getKey());
|
|
|
+ if(CollectionUtils.isEmpty(posts)){
|
|
|
+ archivesMilestoneListRespDTO.setIsLeaf(true);
|
|
|
+ }
|
|
|
+ resp.add(archivesMilestoneListRespDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return resp;
|
|
|
+ }
|
|
|
+ }
|