|
@@ -0,0 +1,236 @@
|
|
|
+package org.jeecg.modules.basedata.controller;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
+import io.swagger.annotations.ApiImplicitParam;
|
|
|
+import io.swagger.annotations.ApiImplicitParams;
|
|
|
+import io.swagger.annotations.ApiModel;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+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.BaseArchivesProjectApprovalReqDTO;
|
|
|
+import org.jeecg.common.dto.basedata.BaseArchivesProjectApprovalRespDTO;
|
|
|
+import org.jeecg.modules.basedata.entity.BaseArchivesProjectApproval;
|
|
|
+import org.jeecg.modules.basedata.service.BaseArchivesProjectApprovalService;
|
|
|
+import org.jeecg.modules.system.service.ISysSerialPatternService;
|
|
|
+import org.jeecg.modules.system.vo.CallResult;
|
|
|
+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.RestController;
|
|
|
+import javax.validation.Valid;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@ApiModel("项目立项接口")
|
|
|
+@RestController
|
|
|
+@RequestMapping("/basedata/projectApproval")
|
|
|
+@Slf4j
|
|
|
+public class BaseArchivesProjectApprovalController {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private BaseArchivesProjectApprovalService baseArchivesProjectApprovalService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ISysSerialPatternService sysSerialPatternService;
|
|
|
+
|
|
|
+ @ApiOperation(value = "项目立项列表查询接口", notes = "项目立项列表查询")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="pkOrg", value="组织",required=false, dataType="String"),
|
|
|
+ })
|
|
|
+ @GetMapping(value = "/list")
|
|
|
+ public Result<List<BaseArchivesProjectApprovalRespDTO>> queryList(String pkOrg) {
|
|
|
+ Result<List<BaseArchivesProjectApprovalRespDTO>> result = new Result<List<BaseArchivesProjectApprovalRespDTO>>();
|
|
|
+ QueryWrapper<BaseArchivesProjectApproval> queryWrapper = new QueryWrapper<BaseArchivesProjectApproval>();
|
|
|
+ queryWrapper.eq("del_flag", CommonConstant.STATUS_NORMAL.toString());
|
|
|
+ queryWrapper.orderByDesc("create_time");
|
|
|
+ if(StringUtils.isNotBlank(pkOrg)){
|
|
|
+ queryWrapper.eq("pk_org", pkOrg);
|
|
|
+ }
|
|
|
+ List<BaseArchivesProjectApproval> list = baseArchivesProjectApprovalService.list(queryWrapper);
|
|
|
+ List<BaseArchivesProjectApprovalRespDTO> respDTOS = getTreeList(list);
|
|
|
+ result.setSuccess(true);
|
|
|
+ result.setResult(respDTOS);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "新增项目立项接口", notes = "新增项目立项")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="parentId", value="父节点",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="name", value="项目名称",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="pkOrg", value="组织",required=false, dataType="String"),
|
|
|
+ })
|
|
|
+ @PostMapping(value = "/add")
|
|
|
+ @NotDuplicate
|
|
|
+
|
|
|
+ public Result<BaseArchivesProjectApproval> add(@RequestBody @Valid BaseArchivesProjectApproval baseArchivesProjectApproval, BindingResult bindingResult) {
|
|
|
+ Result<BaseArchivesProjectApproval> result = new Result<BaseArchivesProjectApproval>();
|
|
|
+ try {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ if (bindingResult.hasErrors()){
|
|
|
+
|
|
|
+ bindingResult.getAllErrors().stream().forEach(error -> sb.append(error.getDefaultMessage() + "<br/>"));
|
|
|
+ result.error500(sb.toString());
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ CallResult<String> nextSerial = sysSerialPatternService.getNextSerial(baseArchivesProjectApproval, "base_archives_project_approval", "code", true);
|
|
|
+ if(!nextSerial.isSucceed()){
|
|
|
+ throw new RuntimeException("获取编号失败");
|
|
|
+ }
|
|
|
+ baseArchivesProjectApproval.setCode(nextSerial.getContent());
|
|
|
+ baseArchivesProjectApproval.setStatus(CommonConstant.DEL_FLAG_0);
|
|
|
+ baseArchivesProjectApproval.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
|
|
|
+ baseArchivesProjectApprovalService.save(baseArchivesProjectApproval);
|
|
|
+ result.success("添加成功!");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ log.info(e.getMessage());
|
|
|
+ result.error500("操作失败:"+e.getMessage());
|
|
|
+
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "编辑项目立项接口", notes = "编辑项目立项")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="id", value="id",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="parentId", value="父节点",required=true, dataType="String"),
|
|
|
+
|
|
|
+ @ApiImplicitParam(name="name", value="项目名称",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="pkOrg", value="组织",required=false, dataType="String"),
|
|
|
+ })
|
|
|
+ @PostMapping(value = "/edit")
|
|
|
+ @NotDuplicate
|
|
|
+
|
|
|
+ public Result<BaseArchivesProjectApproval> edit(@RequestBody @Valid BaseArchivesProjectApproval baseArchivesProjectApproval, BindingResult bindingResult) {
|
|
|
+ Result<BaseArchivesProjectApproval> result = new Result<BaseArchivesProjectApproval>();
|
|
|
+ BaseArchivesProjectApproval baseArchivesPostEntity = baseArchivesProjectApprovalService.getById(baseArchivesProjectApproval.getId());
|
|
|
+ if(baseArchivesPostEntity == null) {
|
|
|
+ result.error500("未找到对应实体");
|
|
|
+ }else {
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ if (bindingResult.hasErrors()){
|
|
|
+
|
|
|
+ bindingResult.getAllErrors().stream().forEach(error -> sb.append(error.getDefaultMessage() + "<br/>"));
|
|
|
+ result.error500(sb.toString());
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ CallResult<String> nextSerial = sysSerialPatternService.getNextSerial(baseArchivesProjectApproval, "base_archives_project_approval", "code", true);
|
|
|
+ if(!nextSerial.isSucceed()){
|
|
|
+ throw new RuntimeException("获取编号失败");
|
|
|
+ }
|
|
|
+ baseArchivesProjectApproval.setCode(nextSerial.getContent());
|
|
|
+ boolean ok = baseArchivesProjectApprovalService.updateById(baseArchivesProjectApproval);
|
|
|
+ if(ok) {
|
|
|
+ result.success("修改成功!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation(value = "通过id删除接口", notes = "通过id删除")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="id", value="id",required=true, dataType="String"),
|
|
|
+ })
|
|
|
+ @PostMapping(value = "/delete")
|
|
|
+ @NotDuplicate
|
|
|
+
|
|
|
+ public Result<BaseArchivesProjectApproval> delete(@RequestBody BaseArchivesProjectApprovalReqDTO baseArchivesProjectApproval) {
|
|
|
+ Result<BaseArchivesProjectApproval> result = new Result<BaseArchivesProjectApproval>();
|
|
|
+ BaseArchivesProjectApproval baseArchivesPostEntity = baseArchivesProjectApprovalService.getById(baseArchivesProjectApproval.getId());
|
|
|
+ if(baseArchivesPostEntity == null) {
|
|
|
+ result.error500("未找到对应实体");
|
|
|
+ }else {
|
|
|
+ baseArchivesPostEntity.setDelFlag(CommonConstant.DEL_FLAG_1.toString());
|
|
|
+ boolean ok = baseArchivesProjectApprovalService.updateById(baseArchivesPostEntity);
|
|
|
+ if(ok) {
|
|
|
+ result.success("删除成功!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @ApiOperation(value = "修改状态接口", notes = "通过id修改状态")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="id", value="id",required=true, dataType="String"),
|
|
|
+ @ApiImplicitParam(name="status", value="状态(0:未启用, 1:启用)",required=true, dataType="Interget"),
|
|
|
+ })
|
|
|
+ @PostMapping(value = "/updateStauts")
|
|
|
+ @NotDuplicate
|
|
|
+
|
|
|
+ public Result<BaseArchivesProjectApproval> updateStatus(@RequestBody BaseArchivesProjectApprovalReqDTO baseArchivesProjectApproval) {
|
|
|
+ Result<BaseArchivesProjectApproval> result = new Result<BaseArchivesProjectApproval>();
|
|
|
+ BaseArchivesProjectApproval baseArchivesPostEntity = baseArchivesProjectApprovalService.getById(baseArchivesProjectApproval.getId());
|
|
|
+ if(baseArchivesPostEntity == null) {
|
|
|
+ result.error500("未找到对应实体");
|
|
|
+ }else {
|
|
|
+ baseArchivesPostEntity.setStatus(baseArchivesProjectApproval.getStatus());
|
|
|
+ boolean ok = baseArchivesProjectApprovalService.updateById(baseArchivesPostEntity);
|
|
|
+ if(ok) {
|
|
|
+ result.success("修改成功!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ * @desc 获取职务档案的数据
|
|
|
+ */
|
|
|
+ private List<BaseArchivesProjectApprovalRespDTO> getTreeList(List<BaseArchivesProjectApproval> list) {
|
|
|
+ List<BaseArchivesProjectApprovalRespDTO> resp = Lists.newArrayList();
|
|
|
+
|
|
|
+ Map<String, List<BaseArchivesProjectApproval>> postMap = list.stream().collect(Collectors.groupingBy(BaseArchivesProjectApproval :: getParentId));
|
|
|
+ List<BaseArchivesProjectApproval> baseArchivesProjectApprovals = postMap.get("0");
|
|
|
+ if(CollectionUtils.isEmpty(baseArchivesProjectApprovals)){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ for(BaseArchivesProjectApproval baseArchivesProjectApproval : baseArchivesProjectApprovals){
|
|
|
+ BaseArchivesProjectApprovalRespDTO baseArchivesProjectApprovalRespDTO = new BaseArchivesProjectApprovalRespDTO(baseArchivesProjectApproval);
|
|
|
+ baseArchivesProjectApprovalRespDTO.setChildren(getChildes(list, baseArchivesProjectApprovalRespDTO.getKey(), postMap));
|
|
|
+
|
|
|
+ List<BaseArchivesProjectApproval> posts = postMap.get(baseArchivesProjectApprovalRespDTO.getKey());
|
|
|
+ if(CollectionUtils.isEmpty(posts)){
|
|
|
+ baseArchivesProjectApprovalRespDTO.setIsLeaf(true);
|
|
|
+ }
|
|
|
+ resp.add(baseArchivesProjectApprovalRespDTO);
|
|
|
+ }
|
|
|
+ return resp;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * @desc 获取子节点数据
|
|
|
+ */
|
|
|
+ private List<BaseArchivesProjectApprovalRespDTO> getChildes(List<BaseArchivesProjectApproval> list, String key, Map<String, List<BaseArchivesProjectApproval>> postMap) {
|
|
|
+ List<BaseArchivesProjectApprovalRespDTO> resp = Lists.newArrayList();
|
|
|
+ for(BaseArchivesProjectApproval baseArchivesProjectApproval : list){
|
|
|
+ if(baseArchivesProjectApproval.getParentId().equals(key)){
|
|
|
+ BaseArchivesProjectApprovalRespDTO baseArchivesProjectApprovalRespDTO = new BaseArchivesProjectApprovalRespDTO(baseArchivesProjectApproval);
|
|
|
+ baseArchivesProjectApprovalRespDTO.setChildren(getChildes(list, baseArchivesProjectApprovalRespDTO.getKey(), postMap));
|
|
|
+
|
|
|
+ List<BaseArchivesProjectApproval> posts = postMap.get(baseArchivesProjectApprovalRespDTO.getKey());
|
|
|
+ if(CollectionUtils.isEmpty(posts)){
|
|
|
+ baseArchivesProjectApprovalRespDTO.setIsLeaf(true);
|
|
|
+ }
|
|
|
+ resp.add(baseArchivesProjectApprovalRespDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return resp;
|
|
|
+ }
|
|
|
+}
|