lichaoliu 4 gadi atpakaļ
vecāks
revīzija
74bf1623e9

+ 1 - 0
src/main/java/com/migao/config/constant/ProjectStatus.java

@@ -8,6 +8,7 @@ public enum ProjectStatus {
     HAS_ORDERED("已采购"),
     HAVE_MONEY("已打款"),
     RESERVES_ISSUED("储备下达"),
+    RESERVES_ISSUED_PASS("储备下达通过"),
     CONTRACT_ENTRY("合同录入"),
     ;
     private String name;

+ 1 - 1
src/main/java/com/migao/config/mybatis/AutoFillObjectHandler.java

@@ -23,6 +23,6 @@ public class AutoFillObjectHandler implements MetaObjectHandler {
     @Override
     public void updateFill(MetaObject metaObject) {
         this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
-        this.strictUpdateFill(metaObject, "updateUserId", Long.class, LoginUtils.getUser().getId());
+        //this.strictUpdateFill(metaObject, "updateUserId", Long.class, LoginUtils.getUser().getId());
     }
 }

+ 1 - 1
src/main/java/com/migao/controller/MilestoneController.java

@@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 
-@Api(tags = "004.里程碑")
+@Api(tags = "102.里程碑")
 @RestController
 @RequestMapping("/milestone")
 public class MilestoneController {

+ 1 - 1
src/main/java/com/migao/controller/ProjectAppendController.java

@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 
-@Api(tags = "012.项目附加项")
+@Api(tags = "105.项目附加项")
 @RestController
 @RequestMapping("/projectAppend")
 public class ProjectAppendController {

+ 64 - 0
src/main/java/com/migao/controller/ProjectController.java

@@ -0,0 +1,64 @@
+package com.migao.controller;
+
+
+import com.migao.config.constant.ExamineStatus;
+import com.migao.config.response.PageBean;
+import com.migao.config.response.ResponseBean;
+import com.migao.config.validation.Insert;
+import com.migao.config.validation.Update;
+import com.migao.entity.vo.req.*;
+import com.migao.entity.vo.res.DictionaryListRes;
+import com.migao.entity.vo.res.ProjectQueryRes;
+import com.migao.service.MilestoneService;
+import com.migao.service.ProjectService;
+import com.migao.service.PurchasingApprovalService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiOperationSupport;
+import io.swagger.annotations.ApiParam;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = "104.项目管控")
+@RestController
+@RequestMapping("/project")
+public class ProjectController {
+
+    @Resource
+    private ProjectService projectService;
+
+    @Resource
+    private PurchasingApprovalService purchasingApprovalService;
+
+
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("改")
+    @PostMapping(value = "/update")
+    public ResponseBean<?> update(
+            @Validated(value = {Update.class}) @RequestBody ProjectUpdateReq projectUpdateReq
+    ) {
+        return projectService.update(projectUpdateReq);
+    }
+
+
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("分页查询(所有子项目)")
+    @PostMapping(value = "/pageQuery")
+    public ResponseBean<PageBean<ProjectQueryRes>> pageQuery(
+            @RequestBody PurchasingApprovalPageQueryReq purchasingApprovalPageQueryReq
+    ) {
+        return purchasingApprovalService.pageQuery(purchasingApprovalPageQueryReq);
+    }
+
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("根据id查询详情")
+    @PostMapping(value = "/findById")
+    public ResponseBean<ProjectQueryRes> findById(
+            @RequestParam Integer id
+    ) {
+        return projectService.findById(id);
+    }
+}

+ 1 - 1
src/main/java/com/migao/controller/ProjectFieldController.java

@@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 
-@Api(tags = "008.项目字段")
+@Api(tags = "106.项目字段")
 @RestController
 @RequestMapping("/projectField")
 public class ProjectFieldController {

+ 6 - 6
src/main/java/com/migao/controller/ProjectControlController.java → src/main/java/com/migao/controller/ProjectGiveController.java

@@ -7,7 +7,7 @@ import com.migao.config.validation.Insert;
 import com.migao.config.validation.Update;
 import com.migao.entity.vo.req.ProjectPageQueryReq;
 import com.migao.entity.vo.req.ProjectUpdateReq;
-import com.migao.entity.vo.req.SubProjectInsertReq;
+import com.migao.entity.vo.req.ParentProjectInsertReq;
 import com.migao.entity.vo.res.DictionaryListRes;
 import com.migao.entity.vo.res.ProjectQueryRes;
 import com.migao.service.ProjectService;
@@ -20,16 +20,16 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 
-@Api(tags = "004.储备下达")
+@Api(tags = "101.储备下达")
 @RestController
 @RequestMapping("/project/give")
-public class ProjectControlController {
+public class ProjectGiveController {
 
     @Resource
     private ProjectService projectService;
 
     @ApiOperationSupport(order = 1)
-    @ApiOperation("分页查")
+    @ApiOperation("分页查询(储备通过的项目)")
     @PostMapping(value = "/pageQuery")
     public ResponseBean<PageBean<ProjectQueryRes>> pageQueryControl(
             @RequestBody ProjectPageQueryReq projectPageQueryReq
@@ -41,9 +41,9 @@ public class ProjectControlController {
     @ApiOperation("新增子项目")
     @PostMapping(value = "/insert")
     public ResponseBean<?> insertSubProject(
-            @Validated(value = {Insert.class}) @RequestBody SubProjectInsertReq subProjectInsertReq
+            @Validated(value = {Insert.class}) @RequestBody ParentProjectInsertReq parentProjectInsertReq
     ) {
-        return projectService.insertSubProject(subProjectInsertReq);
+        return projectService.insertSubProject(parentProjectInsertReq);
     }
 
     @ApiOperation("项目分类下拉列表")

+ 1 - 1
src/main/java/com/migao/controller/ProjectMemberController.java

@@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 
-@Api(tags = "006.项目成员")
+@Api(tags = "107.项目成员")
 @RestController
 @RequestMapping("/projectMember")
 public class ProjectMemberController {

+ 1 - 1
src/main/java/com/migao/controller/ProjectStageController.java

@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 
-@Api(tags = "013.项目阶段")
+@Api(tags = "108.项目阶段")
 @RestController
 @RequestMapping("/projectStage")
 public class ProjectStageController {

+ 1 - 2
src/main/java/com/migao/controller/ProjectStoreController.java

@@ -2,7 +2,6 @@ package com.migao.controller;
 
 
 import com.migao.config.constant.ExamineStatus;
-import com.migao.config.constant.FinancesStatus;
 import com.migao.config.response.PageBean;
 import com.migao.config.response.ResponseBean;
 import com.migao.config.validation.Insert;
@@ -22,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 
-@Api(tags = "003.項目储备")
+@Api(tags = "100.項目储备")
 @RestController
 @RequestMapping("/project/store")
 public class ProjectStoreController {

+ 1 - 1
src/main/java/com/migao/controller/ProjectTypeController.java

@@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 
-@Api(tags = "007.项目类型管理")
+@Api(tags = "109.项目类型管理")
 @RestController
 @RequestMapping("/projectType")
 public class ProjectTypeController {

+ 1 - 1
src/main/java/com/migao/controller/PurchasingApprovalController.java

@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import java.util.List;
 
-@Api(tags = "005.采购审批")
+@Api(tags = "103.采购审批")
 @RestController
 @RequestMapping("/purchasingApproval")
 public class PurchasingApprovalController {

+ 84 - 0
src/main/java/com/migao/entity/vo/req/ParentProjectInsertReq.java

@@ -0,0 +1,84 @@
+package com.migao.entity.vo.req;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+import java.util.List;
+
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Data
+public class ParentProjectInsertReq {
+
+
+    @ApiModelProperty(value = "id")
+    @NotEmpty(message = "id不能为空")
+    private Integer id;
+
+    @ApiModelProperty(value = "资本性(万元)")
+    @NotEmpty(message = "资本性(万元)不能为空")
+    private String capital;
+
+    @ApiModelProperty(value = "项目内容")
+    @NotEmpty(message = "项目内容不能为空")
+    private String content;
+
+    @ApiModelProperty(value = "成本性(万元)")
+    @NotEmpty(message = "成本性(万元)不能为空")
+    private String cost;
+
+    @ApiModelProperty(value = "储备年份")
+    @NotNull(message = "储备年份不能为空")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "重要等级")
+    @NotEmpty(message = "重要等级不能为空")
+    private String level;
+
+    @ApiModelProperty(value = "项目名称")
+    @NotEmpty(message = "项目名称不能为空")
+    private String name;
+
+    @ApiModelProperty(value = "可研情况")
+    @NotEmpty(message = "可研情况不能为空")
+    private String progress;
+
+    @ApiModelProperty(value = "项目分类")
+    @NotEmpty(message = "项目分类不能为空")
+    private String projectClassify;
+
+    @ApiModelProperty(value = "项目专业分类")
+    @NotEmpty(message = "项目专业分类不能为空")
+    private String specialtyClassify;
+
+    @ApiModelProperty(value = "合计(万元)")
+    @NotEmpty(message = "合计(万元)不能为空")
+    private String total;
+
+    @ApiModelProperty(value = "总投资(万元)")
+    @NotEmpty(message = "总投资(万元)不能为空")
+    private String totalInvestment;
+
+    @ApiModelProperty(value = "二级分类")
+    @NotEmpty(message = "二级分类不能为空")
+    private String twoClassify;
+
+    @ApiModelProperty(value = "填报单位")
+    @NotEmpty(message = "填报单位不能为空")
+    private String unit;
+
+
+    /**
+     *子项目新增字段集合
+     */
+    private List<SubProjectInsertReq> subProjectList;
+
+}

+ 1 - 3
src/main/java/com/migao/entity/vo/req/SubProjectInsertReq.java

@@ -11,7 +11,6 @@ import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
 
 
-
 @NoArgsConstructor
 @AllArgsConstructor
 @Builder
@@ -26,8 +25,7 @@ public class SubProjectInsertReq {
     @NotEmpty(message = "项目内容不能为空")
     private String content;
 
-    @NotEmpty(message = "父级项目id不能为空")
-    private Integer parentId;
+    private Integer fileId;
 
     @ApiModelProperty(value = "成本性(万元)")
     @NotEmpty(message = "成本性(万元)不能为空")

+ 1 - 2
src/main/java/com/migao/service/ProjectService.java

@@ -1,7 +1,6 @@
 package com.migao.service;
 
 import com.migao.config.constant.ExamineStatus;
-import com.migao.config.constant.FinancesStatus;
 import com.migao.config.response.PageBean;
 import com.migao.config.response.ResponseBean;
 import com.migao.entity.vo.req.*;
@@ -76,7 +75,7 @@ public interface ProjectService {
 
     ResponseBean<PageBean<ProjectQueryRes>> pageQueryControl(ProjectPageQueryReq projectPageQueryReq);
 
-    ResponseBean<?> insertSubProject(SubProjectInsertReq subProjectInsertReq);
+    ResponseBean<?> insertSubProject(ParentProjectInsertReq parentProjectInsertReq);
 
     ResponseBean<?> template();
 

+ 34 - 22
src/main/java/com/migao/service/impl/ProjectServiceImpl.java

@@ -15,8 +15,8 @@ import com.migao.config.response.PageBean;
 import com.migao.config.response.ResponseBean;
 import com.migao.config.response.ResponseBuilder;
 import com.migao.entity.po.FileInfo;
-import com.migao.entity.po.Milestone;
 import com.migao.entity.po.Project;
+import com.migao.entity.po.ProjectFile;
 import com.migao.entity.vo.req.*;
 import com.migao.entity.vo.res.DictionaryListRes;
 import com.migao.entity.vo.res.ProjectQueryRes;
@@ -33,7 +33,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
-import javax.validation.constraints.NotEmpty;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
@@ -51,7 +50,7 @@ public class ProjectServiceImpl implements ProjectService {
     @Resource
     private DictionaryMapper dictionaryMapper;
     @Resource
-    private MilestoneMapper milestoneMapper;
+    private ProjectFileMapper projectFileMapper;
     @Resource
     private FileInfoRepository fileInfoRepository;
     @Resource
@@ -212,10 +211,11 @@ public class ProjectServiceImpl implements ProjectService {
         if (project == null) {
             ResponseBuilder.fail("项目不存在");
         }
-        if (status.equals(FinancesStatus.PASS)){
+        if (status.equals(FinancesStatus.PASS)) {
             project.setReserveStatus(ProjectStatus.APPROVE.getName());
+            project.setOrderStatus(ProjectStatus.RESERVES_ISSUED.getName());
             projectMapper.updateById(project);
-        }else {
+        } else {
             project.setReserveStatus(ProjectStatus.REJECT.getName());
             projectMapper.updateById(project);
         }
@@ -289,6 +289,7 @@ public class ProjectServiceImpl implements ProjectService {
             queryWrapper.eq(Project::getOrderStatus, projectPageQueryReq.getOrderStatus());
         }
         queryWrapper.eq(Project::getOrderStatus, ProjectStatus.RESERVES_ISSUED.getName());
+        queryWrapper.eq(Project::getReserveStatus, ProjectStatus.APPROVE.getName());
         Page<Project> all = projectMapper.selectPage(new Page<>(page, size), queryWrapper);
         return ResponseBuilder.ok(
                 all,
@@ -318,34 +319,45 @@ public class ProjectServiceImpl implements ProjectService {
     }
 
     @Override
-    public ResponseBean<?> insertSubProject(SubProjectInsertReq subProjectInsertReq) {
+    public ResponseBean<?> insertSubProject(ParentProjectInsertReq parentProjectInsertReq) {
         //查询父级项目
-        Project parProject = projectMapper.selectById(subProjectInsertReq.getParentId());
-        if (parProject==null){
+        Project parProject = projectMapper.selectById(parentProjectInsertReq.getId());
+        if (parProject == null) {
             return ResponseBuilder.fail("父级项目不存在");
         }
+        //更新父级项目
+        BeanUtils.copyProperties(parentProjectInsertReq,parProject);
+        projectMapper.updateById(parProject);
         //创建并关联父级项目
-        Project project = new Project();
-        BeanUtils.copyProperties(subProjectInsertReq, project);
-        project.setReserveStatus(ProjectStatus.APPROVE.getName());
-        project.setOrderStatus(ProjectStatus.TO_BE_REPORTED.getName());
-        project.setDeleted(0);
-        project.setParentId(subProjectInsertReq.getParentId());
-        project.setNo(ProjectNoUtil.getCode());
-        Project save = projectRepository.save(project);
+        List<SubProjectInsertReq> subProjectList = parentProjectInsertReq.getSubProjectList();
+        for (SubProjectInsertReq subProjectInsertReq : subProjectList) {
+            Project project = new Project();
+            BeanUtils.copyProperties(subProjectInsertReq, project);
+            project.setReserveStatus(ProjectStatus.APPROVE.getName());
+            project.setOrderStatus(ProjectStatus.RESERVES_ISSUED_PASS.getName());
+            project.setPurchaseStatus(ProjectStatus.TO_BE_REPORTED.getName());
+            project.setDeleted(0);
+            project.setParentId(parentProjectInsertReq.getId());
+            project.setNo(ProjectNoUtil.getCode());
+            Project save = projectRepository.save(project);
 
-        //更新项目下达状态
-        project.setOrderStatus(ProjectStatus.APPROVE.getName());
-        parProject.setPurchaseStatus(ProjectStatus.TO_BE_REPORTED.getName());
-        projectMapper.updateById(parProject);
+            //关联文件
+            if (subProjectInsertReq.getFileId()!=null){
+                ProjectFile build = ProjectFile.builder()
+                        .fileId(subProjectInsertReq.getFileId())
+                        .projectId(save.getId())
+                        .build();
+                projectFileMapper.insert(build);
+            }
+        }
         return ResponseBuilder.ok();
     }
 
     @Override
     public ResponseBean<?> template() {
         String filePath = StringUtils.join(
-                systemProperties.getDownloadPrefix()+
-                systemProperties.getFileTemplateDir()+"/项目储备导入模板.xlsx"
+                systemProperties.getDownloadPrefix() +
+                        systemProperties.getFileTemplateDir() + "/项目储备导入模板.xlsx"
         );
         return ResponseBuilder.ok(filePath);
     }