PoffyZhang преди 1 година
родител
ревизия
ba6d354a98
променени са 100 файла, в които са добавени 5386 реда и са изтрити 234 реда
  1. +5
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/common/constant/BizConst.java
  2. +2
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java
  3. +22
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/contants/BizProjectContant.java
  4. +70
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/controller/GovProjectCollectionController.java
  5. +114
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/convert/ProjectConvert.java
  6. +418
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/manage/GovProjectCollectionManage.java
  7. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectApplyMapper.java
  8. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectApproveMapper.java
  9. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectBaseinfoMapper.java
  10. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectCimplementMapper.java
  11. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectMimplementMapper.java
  12. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectProcureMapper.java
  13. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovProjectDictionaryMapper.java
  14. +133
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectApplyDTO.java
  15. +86
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectApproveDTO.java
  16. +99
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectBaseinfoDTO.java
  17. +102
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectCimplementDTO.java
  18. +96
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectMimplementDTO.java
  19. +91
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectProcureDTO.java
  20. +47
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectSaveDTO.java
  21. +140
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApply.java
  22. +93
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApprove.java
  23. +107
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectBaseinfo.java
  24. +109
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectCimplement.java
  25. +103
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectMimplement.java
  26. +98
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectProcure.java
  27. +46
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovProjectDictionary.java
  28. +139
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectApplyReq.java
  29. +91
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectApproveReq.java
  30. +106
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectBaseInfoReq.java
  31. +109
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectCimplementReq.java
  32. +97
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectMimplementReq.java
  33. +97
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectProcureReq.java
  34. +32
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectPushReq.java
  35. +135
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectApplyVO.java
  36. +88
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectApproveVO.java
  37. +101
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectBaseinfoVO.java
  38. +104
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectCimplementVO.java
  39. +45
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectDetailVO.java
  40. +47
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectListVO.java
  41. +98
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectMimplementVO.java
  42. +93
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectProcureVO.java
  43. +41
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovProjectDictionaryVO.java
  44. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectApplyService.java
  45. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectApproveService.java
  46. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectBaseinfoService.java
  47. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectCimplementService.java
  48. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectMimplementService.java
  49. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectProcureService.java
  50. +16
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovProjectDictionaryService.java
  51. +21
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectApplyServiceImpl.java
  52. +21
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectApproveServiceImpl.java
  53. +21
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectBaseinfoServiceImpl.java
  54. +21
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectCimplementServiceImpl.java
  55. +21
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectMimplementServiceImpl.java
  56. +21
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectProcureServiceImpl.java
  57. +21
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovProjectDictionaryServiceImpl.java
  58. +7
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/performance/controller/PerformanceAppraisalPlanController.java
  59. +2
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/performance/convert/PerformanceAppraisalConveter.java
  60. +3
    -60
      pmapi/src/main/java/com/ningdatech/pmapi/performance/manage/AppAppraisalManage.java
  61. +3
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/performance/manage/IndicatorConfigManage.java
  62. +119
    -13
      pmapi/src/main/java/com/ningdatech/pmapi/performance/manage/PerformanceAppraisalPlanManage.java
  63. +3
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/portrait/manage/TagManage.java
  64. +32
    -5
      pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/utils/GenerateProjectCodeUtil.java
  65. +2
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/helper/ProjectHelper.java
  66. +3
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ApplicationManage.java
  67. +3
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectCollectionManage.java
  68. +3
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/req/ProjectListReq.java
  69. +2
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/safety/manage/SafetyRiskManage.java
  70. +3
    -0
      pmapi/src/main/resources/application-dev.yml
  71. +3
    -0
      pmapi/src/main/resources/application-pre.yml
  72. +3
    -0
      pmapi/src/main/resources/application-prod.yml
  73. +26
    -47
      pmapi/src/test/resources/application-dev.yml
  74. +26
    -46
      pmapi/src/test/resources/application-pre.yml
  75. +34
    -49
      pmapi/src/test/resources/application-prod.yml
  76. +1
    -0
      pom.xml
  77. +192
    -0
      syn-data-task/pom.xml
  78. +33
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/SynDataTaskApp.java
  79. +101
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/common/constant/BizConst.java
  80. +40
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/open/controller/ProjectReceiveController.java
  81. +168
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/open/manage/ProjectReceiveManage.java
  82. +16
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectApplyMapper.java
  83. +5
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectApplyMapper.xml
  84. +16
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectApproveMapper.java
  85. +5
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectApproveMapper.xml
  86. +16
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectBaseInfoMapper.java
  87. +5
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectBaseInfoMapper.xml
  88. +16
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectCimplementMapper.java
  89. +5
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectCimplementMapper.xml
  90. +16
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectMimplementMapper.java
  91. +5
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectMimplementMapper.xml
  92. +16
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectProcureMapper.java
  93. +5
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectProcureMapper.xml
  94. +103
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/dto/ProjectBaseInfoDTO.java
  95. +33
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/dto/ProjectSaveDTO.java
  96. +138
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/entity/ProjectApply.java
  97. +90
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/entity/ProjectApprove.java
  98. +105
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/entity/ProjectBaseInfo.java
  99. +108
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/entity/ProjectCimplement.java
  100. +96
    -0
      syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/entity/ProjectMimplement.java

+ 5
- 0
pmapi/src/main/java/com/ningdatech/pmapi/common/constant/BizConst.java Целия файл

@@ -60,6 +60,7 @@ public interface BizConst {
* 浙江省的region_id
*/
long ZJ_REGION_CODE = 330000L;
String NINE_AREA_CODE_LAST = "000";

/**
* 省/直辖市 level
@@ -92,4 +93,8 @@ public interface BizConst {
String DEV = "dev";
String PRE = "pre";
String PROD = "prod";

String SAVE_SUCCESS = "保存成功";
String OP_SUCCESS = "操作成功";
String SAVE_FAIL = "保存失败";
}

+ 2
- 1
pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java Целия файл

@@ -35,7 +35,8 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
"com.ningdatech.pmapi.portrait.controller",
"com.ningdatech.pmapi.irs.controller",
"com.ningdatech.pmapi.dashboard.controller",
"com.ningdatech.pmapi.wps.controller"
"com.ningdatech.pmapi.wps.controller",
"com.ningdatech.pmapi.gov.controller"
})
public class GlobalResponseHandler implements ResponseBodyAdvice<Object> {



+ 22
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/contants/BizProjectContant.java Целия файл

@@ -0,0 +1,22 @@
package com.ningdatech.pmapi.gov.contants;

/**
* @Classname BizProjectContant
* @Description
* @Date 2023/8/25 11:03
* @Author PoffyZhang
*/
public interface BizProjectContant {

String PUSH_URL = "http://10.53.168.41:38088/syn-data-task/open/api/v1/project-receive/save";
String NOT_EFFECTIVE_URL = "http://10.53.168.41:38088/syn-data-task/open/api/v1/project-receive/not-effective";
String NOT_EFFECTIVE_CODE = "1";

class ProjectCollection {
//有效
public static final String IS_EFFECTIVE = "02";
//有效
public static final String NOT_EFFECTIVE = "01";
}

}

+ 70
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/controller/GovProjectCollectionController.java Целия файл

@@ -0,0 +1,70 @@
package com.ningdatech.pmapi.gov.controller;

import com.ningdatech.basic.model.PageVo;
import com.ningdatech.log.annotation.WebLog;
import com.ningdatech.pmapi.gov.manage.GovProjectCollectionManage;
import com.ningdatech.pmapi.gov.model.dto.GovBizProjectSaveDTO;
import com.ningdatech.pmapi.gov.model.vo.GovBizProjectDetailVO;
import com.ningdatech.pmapi.gov.model.vo.GovBizProjectListVO;
import com.ningdatech.pmapi.gov.model.vo.GovProjectDictionaryVO;
import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

/**
* <p>
* 前端控制器
* </p>
*
* @author zpf
* @since 2023-08-21
*/
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
@Api(value = "GovProjectCollectionController", tags = "新项目归集")
@RequestMapping("/api/v1/gov-project-collection")
public class GovProjectCollectionController {

private final GovProjectCollectionManage collectionManage;

@GetMapping("/dictionary")
@ApiOperation("字典")
public List<GovProjectDictionaryVO> dictionary(@RequestParam(value = "type", required = false) String type) {
return collectionManage.dictionary(type);
}

@GetMapping("/list")
@ApiOperation("项目归集列表")
public PageVo<GovBizProjectListVO> list(ProjectListReq req) {
return collectionManage.list(req);
}

@GetMapping("/detail/{projId}")
@ApiOperation("项目归集详情")
public GovBizProjectDetailVO detail(@PathVariable String projId) {
return collectionManage.detail(projId);
}

@PostMapping("/save")
@ApiOperation("项目归集保存")
@WebLog("项目归集保存")
public String save(@Valid @RequestBody GovBizProjectSaveDTO saveDTO) {
return collectionManage.save(saveDTO);
}

@PostMapping("/remove/{projId}")
@ApiOperation("项目归集删除")
@WebLog("项目归集删除")
public String remove(@PathVariable String projId) {
return collectionManage.remove(projId);
}
}

+ 114
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/convert/ProjectConvert.java Целия файл

@@ -0,0 +1,114 @@
package com.ningdatech.pmapi.gov.convert;

import cn.hutool.core.bean.BeanUtil;
import com.ningdatech.pmapi.gov.model.dto.*;
import com.ningdatech.pmapi.gov.model.req.*;

import java.util.Objects;

/**
* @Classname ProjectConvert
* @Description
* @Date 2023/8/25 11:53
* @Author PoffyZhang
*/
public class ProjectConvert {

/**
* 6个 转换方法
* @param saveDTO
* @return
*/
public static ProjectPushReq convert(GovBizProjectSaveDTO saveDTO) {
ProjectPushReq req = new ProjectPushReq();
req.setBaseinfo(convertBase(saveDTO.getBaseinfo()));
req.setApply(convertApply(saveDTO.getApply()));
req.setApprove(convertApprove(saveDTO.getApprove()));
req.setCimplement(convertCimplement(saveDTO.getCimplement()));
req.setMimplement(convertMimplement(saveDTO.getMimplement()));
req.setProcure(convertProcure(saveDTO.getProcure()));
return req;
}

private static ProjectProcureReq convertProcure(GovBizProjectProcureDTO procure) {
ProjectProcureReq req = BeanUtil.copyProperties(procure,ProjectProcureReq.class);
return req;
}

private static ProjectMimplementReq convertMimplement(GovBizProjectMimplementDTO mimplement) {
ProjectMimplementReq req = BeanUtil.copyProperties(mimplement,ProjectMimplementReq.class);
return req;
}

public static ProjectCimplementReq convertCimplement(GovBizProjectCimplementDTO cimplement) {
ProjectCimplementReq req = BeanUtil.copyProperties(cimplement,ProjectCimplementReq.class);
return req;
}

public static ProjectApproveReq convertApprove(GovBizProjectApproveDTO approve) {
ProjectApproveReq req = new ProjectApproveReq();
req.setBaseProjId(approve.getBaseProjId());
req.setBaseProjName(approve.getBaseProjName());
req.setOp(approve.getOp());
req.setApprovalFile(approve.getApprovalFile());
req.setBaseReviewCommentsFile(approve.getBaseReviewCommentFile());
req.setPreliminaryDesignFile(approve.getPreliminaryDesignFile());
req.setAreaCode(approve.getAreaCode());
req.setBaseDevelopCode(approve.getBaseDevelopCode());
req.setBaseExpertTotalMoney(String.valueOf(approve.getBaseExpertTotalMoney()));
req.setBaseExpertYearMoney(String.valueOf(approve.getBaseExpertYearMoney()));
req.setReleaseYearMoney(String.valueOf(approve.getReleaseYearMoney()));
req.setBaseInitialReviewTotalMoney(String.valueOf(approve.getBaseInitialReviewTotalMoney()));
req.setBaseReviewOpinion(approve.getBaseReviewOpinion());
req.setBaseReviewResults(approve.getBaseReviewResults());
req.setEqualProtectionLevel(approve.getEqualProtectionLevel());
req.setPreliminaryDesignScheme(approve.getPreliminaryDesignScheme());
req.setSetProjCodeFinan(approve.getSetProjCodeFinan());
return req;
}

public static ProjectApplyReq convertApply(GovBizProjectApplyDTO apply) {
ProjectApplyReq req = new ProjectApplyReq();
if(Objects.isNull(apply)){
return req;
}
req.setOp(apply.getOp());
req.setBaseProjId(apply.getBaseProjId());
req.setBaseProjName(apply.getBaseProjName());
req.setAreaCode(apply.getAreaCode());
req.setBaseAccountAppName(apply.getBaseAccountAppName());
req.setBaseBasisEstablish(apply.getBaseBasisEstablish());
req.setBaseCoreBusiness(apply.getBaseCoreBusiness());
req.setBaseCoreBusinessCode(apply.getBaseCoreBusinessCode());
req.setBaseBrainName(apply.getBaseBrainName());
req.setBaseDevelopCode(apply.getBaseDevelopCode());
req.setBaseLowestLevel(apply.getBaseLowestLevel());
req.setBaseHistorProjId(apply.getBaseHistorProjId());
req.setBaseHistorProjName(apply.getBaseHistorProjName());
req.setBaseOperatMaintenFile(apply.getBaseOperatMaintenFile());
req.setBaseProjApplyFile(apply.getBaseProjApplyFile());
req.setBaseProjBasisFile(apply.getBaseProjBasisFile());
req.setBaseProjOtherFile(apply.getBaseProjOtherFile());
req.setBaseResearchReportFile(apply.getBaseResearchReportFile());
req.setBaseProjConsClass(apply.getBaseProjConsClass());
req.setBaseProjDuration(String.valueOf(apply.getBaseProjDuration()));
req.setBaseProjIntro(apply.getBaseProjIntro());
req.setBaseProjStartTime(String.valueOf(apply.getBaseProjStartTime()));
req.setBaseProjEndTime(String.valueOf(apply.getBaseProjEndTime()));
req.setBaseProjSetYear(apply.getBaseProjSetYear());
req.setBaseProjSys(apply.getBaseProjSys());
req.setBaseProjSysCode(apply.getBaseDevelopCode());
req.setBaseProjDeclAmount(String.valueOf(apply.getBaseProjDeclAmount()));
req.setBaseProjTotalAmount(String.valueOf(apply.getBaseProjTotalAmount()));
req.setBaseBasisAmountOri(apply.getBaseBasisAmountOri());
req.setBaseProjAmountOri(apply.getBaseProjAmountOri());
req.setBaseProjRemark(apply.getBaseProjRemark());
req.setBeseExpectedResults(apply.getBeseExpectedResults());
return req;
}

public static ProjectBaseInfoReq convertBase(GovBizProjectBaseinfoDTO baseinfo) {
ProjectBaseInfoReq req = BeanUtil.copyProperties(baseinfo,ProjectBaseInfoReq.class);
return req;
}
}

+ 418
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/manage/GovProjectCollectionManage.java Целия файл

@@ -0,0 +1,418 @@
package com.ningdatech.pmapi.gov.manage;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Maps;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.pmapi.common.constant.BizConst;
import com.ningdatech.pmapi.gov.contants.BizProjectContant;
import com.ningdatech.pmapi.gov.convert.ProjectConvert;
import com.ningdatech.pmapi.gov.model.dto.*;
import com.ningdatech.pmapi.gov.model.entity.*;
import com.ningdatech.pmapi.gov.model.req.ProjectBaseInfoReq;
import com.ningdatech.pmapi.gov.model.req.ProjectPushReq;
import com.ningdatech.pmapi.gov.model.vo.*;
import com.ningdatech.pmapi.gov.service.*;
import com.ningdatech.pmapi.projectdeclared.utils.GenerateProjectCodeUtil;
import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;

/**
* @author zpf
* @date 2023/8/21 下午2:27
*/

@Component
@RequiredArgsConstructor
@Slf4j
public class GovProjectCollectionManage {

private final IGovProjectDictionaryService dictionaryService;

private final IGovBizProjectApplyService projectApplyService;

private final IGovBizProjectBaseinfoService baseinfoService;

private final IGovBizProjectApproveService approveService;

private final IGovBizProjectCimplementService cimplementService;

private final IGovBizProjectMimplementService mimplementService;

private final IGovBizProjectProcureService procureService;

private final GenerateProjectCodeUtil generateProjectCodeUtil;

private final RestTemplate restTemplate;

@Value("${project.push-url}")
private String pushUrl;

@Value("${project.no-effective-url}")
private String noEffectiveUrl;

public List<GovProjectDictionaryVO> dictionary(String type) {

List<GovProjectDictionary> dictionaries = dictionaryService.list(Wrappers.lambdaQuery(GovProjectDictionary.class)
.eq(StringUtils.isNotBlank(type), GovProjectDictionary::getType, type));

if(CollUtil.isEmpty(dictionaries)){
return Collections.emptyList();
}

return dictionaries.stream().map(d -> BeanUtil.copyProperties(d,GovProjectDictionaryVO.class))
.collect(Collectors.toList());
}

/**
* 分页查 项目归集
* @param req
* @return
*/
public PageVo<GovBizProjectListVO> list(ProjectListReq req) {
Page<GovBizProjectBaseinfo> page = req.page();
LambdaQueryWrapper<GovBizProjectBaseinfo> wrapper = Wrappers.lambdaQuery(GovBizProjectBaseinfo.class)
.like(StringUtils.isNotBlank(req.getProjectName()),GovBizProjectBaseinfo::getBaseProjName,req.getProjectName())
.like(StringUtils.isNotBlank(req.getBuildOrg()),GovBizProjectBaseinfo::getBaseBuildDeprt,req.getBuildOrg())
.orderByDesc(GovBizProjectBaseinfo::getBizTime);
baseinfoService.page(page,wrapper);

if(0L == page.getTotal()){
return PageVo.empty();
}

List<String> projIds = page.getRecords().stream()
.filter(p -> Objects.nonNull(p) && StringUtils.isNotBlank(p.getBaseProjId()))
.map(GovBizProjectBaseinfo::getBaseProjId).collect(Collectors.toList());

Map<String,GovBizProjectApply> applyMap = Maps.newHashMap();
if(CollUtil.isNotEmpty(projIds)){
List<GovBizProjectApply> applys = projectApplyService.list(Wrappers.lambdaQuery(GovBizProjectApply.class)
.in(GovBizProjectApply::getBaseProjId,projIds));
applyMap = applys.stream().collect(Collectors.toMap(GovBizProjectApply::getBaseProjId,a -> a));
}

Map<String, GovBizProjectApply> finalApplyMap = applyMap;
List<GovBizProjectListVO> res = page.getRecords().stream().map(p -> {
GovBizProjectListVO vo = new GovBizProjectListVO();
vo.setBaseAreaCode(p.getBaseAreaCode());
vo.setBaseAreaName(p.getBaseAreaName());
vo.setBaseBuildDeprt(p.getBaseBuildDeprt());
vo.setBaseBuildDeprtDing(p.getBaseBuildDeprtDing());
vo.setBaseProjId(p.getBaseProjId());
vo.setBaseProjName(p.getBaseProjName());
if(finalApplyMap.containsKey(p.getBaseProjId())){
GovBizProjectApply apply = finalApplyMap.get(p.getBaseProjId());
vo.setBaseProjDeclAmount(apply.getBaseProjDeclAmount());
vo.setBaseProjTotalAmount(apply.getBaseProjTotalAmount());
}
return vo;
}).collect(Collectors.toList());

return PageVo.of(res,page.getTotal());
}

/**
* 项目归集详情
* @param projId
* @return
*/
public GovBizProjectDetailVO detail(String projId) {
GovBizProjectDetailVO res = new GovBizProjectDetailVO();
//1.先查 基本信息
GovBizProjectBaseinfo baseinfo = baseinfoService.getOne(Wrappers.lambdaQuery(GovBizProjectBaseinfo.class)
.eq(GovBizProjectBaseinfo::getBaseProjId, projId)
.orderByDesc(GovBizProjectBaseinfo::getBizTime)
.last(BizConst.LIMIT_1));

if(Objects.isNull(baseinfo)){
return res;
}
res.setBaseProjId(baseinfo.getBaseProjId());
res.setBaseProjName(baseinfo.getBaseProjName());
res.setBaseinfo(BeanUtil.copyProperties(baseinfo, GovBizProjectBaseinfoVO.class));

//2.再查 申报信息
GovBizProjectApply apply = projectApplyService.getOne(Wrappers.lambdaQuery(GovBizProjectApply.class)
.eq(GovBizProjectApply::getBaseProjId, projId)
.orderByDesc(GovBizProjectApply::getBizTime)
.last(BizConst.LIMIT_1));
if(Objects.nonNull(apply)){
res.setApply(BeanUtil.copyProperties(apply, GovBizProjectApplyVO.class));
}

//3.再查 审批信息
GovBizProjectApprove approve = approveService.getOne(Wrappers.lambdaQuery(GovBizProjectApprove.class)
.eq(GovBizProjectApprove::getBaseProjId, projId)
.orderByDesc(GovBizProjectApprove::getBizTime)
.last(BizConst.LIMIT_1));
if(Objects.nonNull(approve)){
res.setApprove(BeanUtil.copyProperties(approve, GovBizProjectApproveVO.class));
}

//4 对应查询 实施项目还是运维项目
GovBizProjectCimplement cimplement = cimplementService.getOne(Wrappers.lambdaQuery(GovBizProjectCimplement.class)
.eq(GovBizProjectCimplement::getBaseProjId, projId)
.orderByDesc(GovBizProjectCimplement::getBizTime)
.last(BizConst.LIMIT_1));
if(Objects.nonNull(cimplement)){
res.setCimplement(BeanUtil.copyProperties(cimplement, GovBizProjectCimplementVO.class));
}
GovBizProjectMimplement mimplement = mimplementService.getOne(Wrappers.lambdaQuery(GovBizProjectMimplement.class)
.eq(GovBizProjectMimplement::getBaseProjId, projId)
.orderByDesc(GovBizProjectMimplement::getBizTime)
.last(BizConst.LIMIT_1));
if(Objects.nonNull(mimplement)){
res.setMimplement(BeanUtil.copyProperties(mimplement, GovBizProjectMimplementVO.class));
}

//5.最后查询采购信息
GovBizProjectProcure procure = procureService.getOne(Wrappers.lambdaQuery(GovBizProjectProcure.class)
.eq(GovBizProjectProcure::getBaseProjId, projId)
.orderByDesc(GovBizProjectProcure::getBizTime)
.last(BizConst.LIMIT_1));
if(Objects.nonNull(procure)){
res.setProcure(BeanUtil.copyProperties(procure, GovBizProjectProcureVO.class));
}

return res;
}

/**
* 项目归集保存
* @param saveDTO
* @return
*/
public String save(GovBizProjectSaveDTO saveDTO) {
String baseProjId = saveDTO.getBaseProjId();

//如果是新增的话 要生成 项目编号
if(StringUtils.isBlank(baseProjId)){
baseProjId = generateProjectCodeUtil.generateProjectCode(saveDTO);
}

String baseProjName = saveDTO.getBaseProjName();

//1.保存基本信息
GovBizProjectBaseinfoDTO baseinfo = saveDTO.getBaseinfo();
baseinfo.setBaseProjId(baseProjId);
baseinfo.setBaseProjName(baseProjName);
GovBizProjectBaseinfo oldBaseInfo = baseinfoService.getOne(Wrappers.lambdaQuery(GovBizProjectBaseinfo.class)
.eq(GovBizProjectBaseinfo::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

//项目名去重
checkName(baseProjName,baseProjId);
GovBizProjectBaseinfo saveBase = BeanUtil.copyProperties(baseinfo,GovBizProjectBaseinfo.class);
saveBase.setBaseProjId(baseProjId);
saveBase.setBaseProjName(baseProjName);
saveBase.setIsEffective(BizProjectContant.ProjectCollection.IS_EFFECTIVE);
if(Objects.nonNull(oldBaseInfo)){
saveBase.setId(oldBaseInfo.getId());
}else{
if(Objects.nonNull(saveBase.getBaseAreaCode())){
saveBase.setBaseAreaCode(saveBase.getBaseAreaCode() + BizConst.NINE_AREA_CODE_LAST);
saveBase.setAreaCode(saveBase.getBaseAreaCode());
}
saveBase.setTongTime(LocalDateTime.now());
}
baseinfoService.saveOrUpdate(saveBase);

// 2.保存 申报信息
GovBizProjectApplyDTO apply = saveDTO.getApply();
apply.setBaseProjId(baseProjId);
apply.setBaseProjName(baseProjName);
if(Objects.nonNull(apply)){
GovBizProjectApply oldApply = projectApplyService.getOne(Wrappers.lambdaQuery(GovBizProjectApply.class)
.eq(GovBizProjectApply::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

GovBizProjectApply saveApply = BeanUtil.copyProperties(apply,GovBizProjectApply.class);
saveApply.setBaseProjId(baseProjId);
if(Objects.nonNull(oldApply)){
saveApply.setId(oldApply.getId());
}else{
if(Objects.nonNull(saveBase.getBaseAreaCode())){
saveApply.setAreaCode(saveBase.getBaseAreaCode());
}
saveApply.setTongTime(LocalDateTime.now());
}
projectApplyService.saveOrUpdate(saveApply);
}

// 3.保存 审批信息
GovBizProjectApproveDTO approve = saveDTO.getApprove();
approve.setBaseProjId(baseProjId);
approve.setBaseProjName(baseProjName);
if(Objects.nonNull(approve)){
GovBizProjectApprove oldApprove = approveService.getOne(Wrappers.lambdaQuery(GovBizProjectApprove.class)
.eq(GovBizProjectApprove::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

GovBizProjectApprove saveApprove = BeanUtil.copyProperties(approve,GovBizProjectApprove.class);
saveApprove.setBaseProjId(baseProjId);
if(Objects.nonNull(oldApprove)){
saveApprove.setId(oldApprove.getId());
}else{
if(Objects.nonNull(saveBase.getBaseAreaCode())){
saveApprove.setAreaCode(saveBase.getBaseAreaCode());
}
saveApprove.setTongTime(LocalDateTime.now());
}
approveService.saveOrUpdate(saveApprove);
}

// 4.保存 建设项目 实施信息
GovBizProjectCimplementDTO cimplement = saveDTO.getCimplement();
cimplement.setBaseProjId(baseProjId);
cimplement.setBaseProjName(baseProjName);
if(Objects.nonNull(cimplement)){
GovBizProjectCimplement oldCimplement = cimplementService.getOne(Wrappers.lambdaQuery(GovBizProjectCimplement.class)
.eq(GovBizProjectCimplement::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

GovBizProjectCimplement saveCimplement = BeanUtil.copyProperties(cimplement,GovBizProjectCimplement.class);
saveCimplement.setBaseProjId(baseProjId);
if(Objects.nonNull(oldCimplement)){
saveCimplement.setId(oldCimplement.getId());
}else{
if(Objects.nonNull(saveBase.getBaseAreaCode())){
saveCimplement.setAreaCode(saveBase.getBaseAreaCode());
}
saveCimplement.setTongTime(LocalDateTime.now());
}
cimplementService.saveOrUpdate(saveCimplement);
}

// 5.保存 运维项目 实施信息
GovBizProjectMimplementDTO mimplement = saveDTO.getMimplement();
mimplement.setBaseProjId(baseProjId);
mimplement.setBaseProjName(baseProjName);
if(Objects.nonNull(mimplement)){
GovBizProjectMimplement oldMimplement = mimplementService.getOne(Wrappers.lambdaQuery(GovBizProjectMimplement.class)
.eq(GovBizProjectMimplement::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

GovBizProjectMimplement saveMimplement = BeanUtil.copyProperties(mimplement,GovBizProjectMimplement.class);
saveMimplement.setBaseProjId(baseProjId);
if(Objects.nonNull(oldMimplement)){
saveMimplement.setId(oldMimplement.getId());
}else{
if(Objects.nonNull(saveBase.getBaseAreaCode())){
saveMimplement.setAreaCode(saveBase.getBaseAreaCode());
}
saveMimplement.setTongTime(LocalDateTime.now());
}
mimplementService.saveOrUpdate(saveMimplement);
}

// 6.保存 采购信息
GovBizProjectProcureDTO procure = saveDTO.getProcure();
procure.setBaseProjId(baseProjId);
procure.setBaseProjName(baseProjName);
if(Objects.nonNull(procure)){
GovBizProjectProcure oldProcure = procureService.getOne(Wrappers.lambdaQuery(GovBizProjectProcure.class)
.eq(GovBizProjectProcure::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

GovBizProjectProcure saveProcure = BeanUtil.copyProperties(procure,GovBizProjectProcure.class);
saveProcure.setBaseProjId(baseProjId);
if(Objects.nonNull(oldProcure)){
saveProcure.setId(oldProcure.getId());
}else{
if(Objects.nonNull(saveBase.getBaseAreaCode())){
saveProcure.setAreaCode(saveBase.getBaseAreaCode());
}
saveProcure.setTongTime(LocalDateTime.now());
}
procureService.saveOrUpdate(saveProcure);
}

//7. 推送数据
pushProject(saveDTO);

return BizConst.SAVE_SUCCESS;
}

/**
* 删除项目归集
* @param projId
* @return
*/
public String remove(String projId) {
GovBizProjectBaseinfo baseinfo = baseinfoService.getOne(Wrappers.lambdaQuery(GovBizProjectBaseinfo.class)
.eq(GovBizProjectBaseinfo::getBaseProjId, projId)
.last(BizConst.LIMIT_1));
VUtils.isTrue(Objects.isNull(baseinfo)).throwMessage("项目不存在!");

baseinfoService.removeById(baseinfo);
projectApplyService.remove(Wrappers.lambdaQuery(GovBizProjectApply.class)
.eq(GovBizProjectApply::getBaseProjId,projId));
approveService.remove(Wrappers.lambdaQuery(GovBizProjectApprove.class)
.eq(GovBizProjectApprove::getBaseProjId,projId));
cimplementService.remove(Wrappers.lambdaQuery(GovBizProjectCimplement.class)
.eq(GovBizProjectCimplement::getBaseProjId,projId));
mimplementService.remove(Wrappers.lambdaQuery(GovBizProjectMimplement.class)
.eq(GovBizProjectMimplement::getBaseProjId,projId));
procureService.remove(Wrappers.lambdaQuery(GovBizProjectProcure.class)
.eq(GovBizProjectProcure::getBaseProjId,projId));
notEffectiveProject(BeanUtil.copyProperties(baseinfo,GovBizProjectBaseinfoDTO.class));
return BizConst.OP_SUCCESS;
}

private void checkName(String baseProjName, String baseProjId) {
VUtils.isTrue(baseinfoService.count(Wrappers.lambdaQuery(GovBizProjectBaseinfo.class)
.eq(GovBizProjectBaseinfo::getBaseProjName,baseProjName)
.ne(GovBizProjectBaseinfo::getBaseProjId,baseProjId)) > 0L)
.throwMessage("项目名重复");
}

/**
* 推送项目
* @param saveDTO
*/
private void pushProject(GovBizProjectSaveDTO saveDTO) {
String url = pushUrl;
ProjectPushReq req = ProjectConvert.convert(saveDTO);
try{
ResponseEntity<String> response = restTemplate.postForEntity(url, null, String.class, req);
log.info("推送结果 {} :{}",saveDTO.getBaseProjId(),response);
}catch (Exception e){
log.info("推送失败,{}",e.getMessage());
}
}

/**
* 把项目置为无效
* @param baseinfo
*/
private void notEffectiveProject(GovBizProjectBaseinfoDTO baseinfo) {
String url = noEffectiveUrl;
baseinfo.setIsEffective(BizProjectContant.NOT_EFFECTIVE_CODE);
ProjectBaseInfoReq req = ProjectConvert.convertBase(baseinfo);
try{
ResponseEntity<String> response = restTemplate.postForEntity(url, null, String.class, req);
log.info("推送结果 {} :{}",baseinfo.getBaseProjId(),response);
}catch (Exception e){
log.info("推送失败,{}",e.getMessage());
}
}
}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectApplyMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectApply;

/**
* <p>
* Mapper 接口
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface GovBizProjectApplyMapper extends BaseMapper<GovBizProjectApply> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectApproveMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectApprove;

/**
* <p>
* Mapper 接口
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface GovBizProjectApproveMapper extends BaseMapper<GovBizProjectApprove> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectBaseinfoMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectBaseinfo;

/**
* <p>
* Mapper 接口
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface GovBizProjectBaseinfoMapper extends BaseMapper<GovBizProjectBaseinfo> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectCimplementMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectCimplement;

/**
* <p>
* Mapper 接口
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface GovBizProjectCimplementMapper extends BaseMapper<GovBizProjectCimplement> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectMimplementMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectMimplement;

/**
* <p>
* Mapper 接口
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface GovBizProjectMimplementMapper extends BaseMapper<GovBizProjectMimplement> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovBizProjectProcureMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectProcure;

/**
* <p>
* Mapper 接口
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface GovBizProjectProcureMapper extends BaseMapper<GovBizProjectProcure> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/mapper/GovProjectDictionaryMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.pmapi.gov.model.entity.GovProjectDictionary;

/**
* <p>
* Mapper 接口
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface GovProjectDictionaryMapper extends BaseMapper<GovProjectDictionary> {

}

+ 133
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectApplyDTO.java Целия файл

@@ -0,0 +1,133 @@
package com.ningdatech.pmapi.gov.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 项目申报信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectApply对象", description = "项目申报表")
public class GovBizProjectApplyDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("发改委项目代码")
private String baseDevelopCode;

@ApiModelProperty("财政项目代码")
private String setProjCodeFinan;

@ApiModelProperty("历年项目名称")
private String baseHistorProjName;

@ApiModelProperty("'历年项目编码'")
private String baseHistorProjId;

@ApiModelProperty("关联IRS应用名称")
private String baseProjSys;

@ApiModelProperty("关联IRS应用编号")
private String baseProjSysCpde;

@ApiModelProperty("一本账重大应用名称")
private String baseAccountAppName;

@ApiModelProperty("领域大脑 一本账名称")
private String baseBrainName;

@ApiModelProperty("单位核心业务名称")
private String baseCoreBusiness;

@ApiModelProperty("单位核心业务编号")
private String baseCoreBusinessCode;

@ApiModelProperty("项目开始时间")
private LocalDateTime baseProjStartTime;

@ApiModelProperty("项目结束时间")
private LocalDateTime baseProjEndTime;

@ApiModelProperty("项目期限")
private LocalDateTime baseProjDuration;

@ApiModelProperty("项目年度")
private String baseProjSetYear;

@ApiModelProperty("预算来源")
private String baseProjAmountOri;

@ApiModelProperty("预算来源说明")
private String baseBasisAmountOri;

@ApiModelProperty("项目总投资")
private BigDecimal baseProjTotalAmount;

@ApiModelProperty("申报年度预算")
private BigDecimal baseProjDeclAmount;

@ApiModelProperty("建设层级")
private String baseProjConsClass;

@ApiModelProperty("贯通层级")
private String baseLowestLevel;

@ApiModelProperty("立项依据")
private String baseProjBasis;

@ApiModelProperty("立项依据说明")
private String baseBasisEstablish;

@ApiModelProperty("立项依据证明材料")
private String baseProjBasisFile;

@ApiModelProperty("项目概述")
private String baseProjIntro;

@ApiModelProperty("项目内容与预期成效")
private String beseExpectedResults;

@ApiModelProperty("可研报告")
private String baseResearchReportFile;

@ApiModelProperty("项目申报书")
private String baseProjApplyFile;

@ApiModelProperty("运维方案")
private String baseOperatMaintenFile;

@ApiModelProperty("其他附件")
private String baseProjOtherFile;

@ApiModelProperty("备注")
private String baseProjRemark;

@ApiModelProperty("数据来源 区域code")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 86
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectApproveDTO.java Целия файл

@@ -0,0 +1,86 @@
package com.ningdatech.pmapi.gov.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 项目审核信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectBaseinfo对象", description = "项目审核信息表")
public class GovBizProjectApproveDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("'发改项目代码'")
private String baseDevelopCode;

@ApiModelProperty("'财政项目代码'")
private String setProjCodeFinan;

@ApiModelProperty("评审结果")
private String baseReviewResults;

@ApiModelProperty("评审意见")
private String baseReviewOpinion;

@ApiModelProperty("评审意见附件")
private String baseReviewCommentFile;

@ApiModelProperty("建议总投资")
private BigDecimal baseExpertTotalMoney;

@ApiModelProperty("'建议年度预算'")
private BigDecimal baseExpertYearMoney;

@ApiModelProperty("立项批复文件")
private String approvalFile;

@ApiModelProperty("建议批复总投资")
private BigDecimal baseInitialReviewTotalMoney;

@ApiModelProperty("'建议批复年度预算'")
private BigDecimal baseProjReplyAmount;

@ApiModelProperty("等保定级")
private String equalProtectionLevel;

@ApiModelProperty("初步设计方案")
private String preliminaryDesignScheme;

@ApiModelProperty("初步设计方案批复函")
private String preliminaryDesignFile;

@ApiModelProperty("年度预算下达金额")
private BigDecimal releaseYearMoney;


@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 99
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectBaseinfoDTO.java Целия файл

@@ -0,0 +1,99 @@
package com.ningdatech.pmapi.gov.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目基本信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectBaseinfo对象", description = "项目基本信息表")
public class GovBizProjectBaseinfoDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("基本项目区域code")
private String baseAreaCode;

@ApiModelProperty("基本项目区域名")
private String baseAreaName;

@ApiModelProperty("是否涉密")
private String baseProjIsConfidentiality;

@ApiModelProperty("项目类型")
private String baseProjType;

@ApiModelProperty("内容类别")
private String baseConstructionType;

@ApiModelProperty("项目状态")
private String baseProjSetProg;

@ApiModelProperty("信息是否有效")
private String isEffective;

@ApiModelProperty("上级主管单位")
private String baseProvManDeprt;

@ApiModelProperty("上级主管单位钉id")
private String baseProvManDeprtDing;

@ApiModelProperty("本级主管单位")
private String baseManDeprt;

@ApiModelProperty("本级主管单位ding code")
private String baseManDeprtDing;

@ApiModelProperty("本级主管单位社会统一信用代码")
private String baseManDepartUsci;

@ApiModelProperty("建设单位")
private String baseBuildDeprt;

@ApiModelProperty("建设单位Ding Code")
private String baseBuildDeprtDing;

@ApiModelProperty("建设单位社会统一信用代码")
private String baseBuildDepartUsci;

@ApiModelProperty("项目负责人")
private String baseProjPrincipal;

@ApiModelProperty("项目负责人手机号")
private String baseProjPrincipalCall;

@ApiModelProperty("项目联系人")
private String baseProjContacts;

@ApiModelProperty("项目联系人联系方式")
private String baseProjContactsCall;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 102
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectCimplementDTO.java Целия файл

@@ -0,0 +1,102 @@
package com.ningdatech.pmapi.gov.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目实施信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectCimplement对象", description = "项目实施信息表")
public class GovBizProjectCimplementDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("标段编号")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("初验意见")
private String baseInitialOpinionFile;

@ApiModelProperty("信息安全等级保护测评报告")
private String baseInforLevelFile;

@ApiModelProperty("'商业密码应用评估报告'")
private String basePasswAssessFile;

@ApiModelProperty("第三方验收测试报告")
private String baseThirdAcceptFile;

@ApiModelProperty("建设核查表")
private String baseCheckFile;

@ApiModelProperty("财务审计报告")
private String baseFinanlAuditFile;

@ApiModelProperty("用户使用报告")
private String baseUserConsFile;

@ApiModelProperty("监理总结报告")
private String baseEstaSummFile;

@ApiModelProperty("IRS应用试运行报告")
private String baseIrsTestRunFile;

@ApiModelProperty("项目总结报告")
private String baseSummReportFile;

@ApiModelProperty("'是否完成日志数据归集'")
private String baseLogAggregation;

@ApiModelProperty("实际成效指标")
private String baseBusinessMetrics;

@ApiModelProperty("终审意见")
private String baseFinalExpertOpinionFile;

@ApiModelProperty("项目延期申请表")
private String baseEngineerPostpoFile;

@ApiModelProperty("变更申请单")
private String baseChangeFormFile;

@ApiModelProperty("生产批复文件")
private String baseChanFile;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 96
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectMimplementDTO.java Целия файл

@@ -0,0 +1,96 @@
package com.ningdatech.pmapi.gov.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 运维项目实施信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectMimplement对象", description = "运维项目实施信息表")
public class GovBizProjectMimplementDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("标段编号")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("初验意见")
private String baseInitialOpinionFile;

@ApiModelProperty("信息安全等级保护测评报告")
private String baseInforLevelFile;

@ApiModelProperty("'商业密码应用评估报告'")
private String basePasswAssessFile;

@ApiModelProperty("第三方验收测试报告")
private String baseThirdAcceptFile;

@ApiModelProperty("用户使用报告")
private String baseUserConsFile;

@ApiModelProperty("监理总结报告")
private String baseEstaSummFile;

@ApiModelProperty("IRS应用试运行报告")
private String baseIrsTestRunFile;

@ApiModelProperty("运维总结报告")
private String baseOperatMaintenSummFile;

@ApiModelProperty("'是否完成日志数据归集'")
private String baseLogAggregation;

@ApiModelProperty("实际成效指标")
private String baseBusinessMetrics;

@ApiModelProperty("终审意见")
private String baseFinalExpertOpinionFile;

@ApiModelProperty("项目延期申请表")
private String baseEngineerPostpoFile;

@ApiModelProperty("变更报告")
private String baseEngineerAlterFile;

@ApiModelProperty("变更批复文件")
private String baseChanFile;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 91
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectProcureDTO.java Целия файл

@@ -0,0 +1,91 @@
package com.ningdatech.pmapi.gov.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 项目采购信息
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectProcure对象", description = "项目采购信息")
public class GovBizProjectProcureDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("标段编号")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("'财政项目代码'")
private String setProjCodeFinan;

@ApiModelProperty("采购方式")
private String baseProjPurchaseWay;

@ApiModelProperty("预算执行确认书编号")
private String basePurchaseCode;

@ApiModelProperty("招标(采购)文件")
private String purchaseFile;

@ApiModelProperty("采购代理机构")
private String basePurchasingAgencies;

@ApiModelProperty("采购代理机构统一社会信用代码")
private String baseUnifiedCreditCode;

@ApiModelProperty("中标(成交)时间")
private LocalDateTime baseWinningBidTime;

@ApiModelProperty("中标(成交)金额")
private BigDecimal baseProjPurchaseAmount;

@ApiModelProperty("中标(成交)通知书")
private String biddingFile;

@ApiModelProperty("中标(成交)供应商名称")
private String baseConsDeprt;

@ApiModelProperty("中标(成交)供应商统一社会信用代码")
private String baseConsDeprtUsci;

@ApiModelProperty("采购合同")
private String purchaseContract;

@ApiModelProperty("项目款支付时间")
private LocalDateTime basePaymentTime;

@ApiModelProperty("项目款支付金额")
private BigDecimal paymentProgress;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 47
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/dto/GovBizProjectSaveDTO.java Целия файл

@@ -0,0 +1,47 @@
package com.ningdatech.pmapi.gov.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
* <p>
* 项目归集总VO
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectSaveDTO", description = "项目归集总详情DTO")
public class GovBizProjectSaveDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("项目基本信息")
private GovBizProjectBaseinfoDTO baseinfo;

@ApiModelProperty("项目申报信息")
private GovBizProjectApplyDTO apply;

@ApiModelProperty("项目审批信息")
private GovBizProjectApproveDTO approve;

@ApiModelProperty("实施项目实施信息")
private GovBizProjectCimplementDTO cimplement;

@ApiModelProperty("运维项目实施信息")
private GovBizProjectMimplementDTO mimplement;

@ApiModelProperty("项目采购信息")
private GovBizProjectProcureDTO procure;
}

+ 140
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApply.java Целия файл

@@ -0,0 +1,140 @@
package com.ningdatech.pmapi.gov.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 项目申报信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@TableName("gov_biz_project_apply")
@ApiModel(value = "GovBizProjectApply对象", description = "项目申报信息表")
public class GovBizProjectApply implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
@TableId(type = IdType.AUTO)
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("发改委项目代码")
private String baseDevelopCode;

@ApiModelProperty("财政项目代码")
private String setProjCodeFinan;

@ApiModelProperty("历年项目名称")
private String baseHistorProjName;

@ApiModelProperty("'历年项目编码'")
private String baseHistorProjId;

@ApiModelProperty("关联IRS应用名称")
private String baseProjSys;

@ApiModelProperty("关联IRS应用编号")
private String baseProjSysCpde;

@ApiModelProperty("一本账重大应用名称")
private String baseAccountAppName;

@ApiModelProperty("领域大脑 一本账名称")
private String baseBrainName;

@ApiModelProperty("单位核心业务名称")
private String baseCoreBusiness;

@ApiModelProperty("单位核心业务编号")
private String baseCoreBusinessCode;

@ApiModelProperty("项目开始时间")
private LocalDateTime baseProjStartTime;

@ApiModelProperty("项目结束时间")
private LocalDateTime baseProjEndTime;

@ApiModelProperty("项目期限")
private LocalDateTime baseProjDuration;

@ApiModelProperty("项目年度")
private String baseProjSetYear;

@ApiModelProperty("预算来源")
private String baseProjAmountOri;

@ApiModelProperty("预算来源说明")
private String baseBasisAmountOri;

@ApiModelProperty("项目总投资")
private BigDecimal baseProjTotalAmount;

@ApiModelProperty("申报年度预算")
private BigDecimal baseProjDeclAmount;

@ApiModelProperty("建设层级")
private String baseProjConsClass;

@ApiModelProperty("贯通层级")
private String baseLowestLevel;

@ApiModelProperty("立项依据")
private String baseProjBasis;

@ApiModelProperty("立项依据说明")
private String baseBasisEstablish;

@ApiModelProperty("立项依据证明材料")
private String baseProjBasisFile;

@ApiModelProperty("项目概述")
private String baseProjIntro;

@ApiModelProperty("项目内容与预期成效")
private String beseExpectedResults;

@ApiModelProperty("可研报告")
private String baseResearchReportFile;

@ApiModelProperty("项目申报书")
private String baseProjApplyFile;

@ApiModelProperty("运维方案")
private String baseOperatMaintenFile;

@ApiModelProperty("其他附件")
private String baseProjOtherFile;

@ApiModelProperty("备注")
private String baseProjRemark;

@ApiModelProperty("数据来源 区域code")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 93
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApprove.java Целия файл

@@ -0,0 +1,93 @@
package com.ningdatech.pmapi.gov.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 项目审核信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@TableName("gov_biz_project_approve")
@ApiModel(value = "GovBizProjectBaseinfo对象", description = "项目审核信息表")
public class GovBizProjectApprove implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
@TableId(type = IdType.AUTO)
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("'发改项目代码'")
private String baseDevelopCode;

@ApiModelProperty("'财政项目代码'")
private String setProjCodeFinan;

@ApiModelProperty("评审结果")
private String baseReviewResults;

@ApiModelProperty("评审意见")
private String baseReviewOpinion;

@ApiModelProperty("评审意见附件")
private String baseReviewCommentFile;

@ApiModelProperty("建议总投资")
private BigDecimal baseExpertTotalMoney;

@ApiModelProperty("'建议年度预算'")
private BigDecimal baseExpertYearMoney;

@ApiModelProperty("立项批复文件")
private String approvalFile;

@ApiModelProperty("建议批复总投资")
private BigDecimal baseInitialReviewTotalMoney;

@ApiModelProperty("'建议批复年度预算'")
private BigDecimal baseProjReplyAmount;

@ApiModelProperty("等保定级")
private String equalProtectionLevel;

@ApiModelProperty("初步设计方案")
private String preliminaryDesignScheme;

@ApiModelProperty("初步设计方案批复函")
private String preliminaryDesignFile;

@ApiModelProperty("年度预算下达金额")
private BigDecimal releaseYearMoney;


@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 107
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectBaseinfo.java Целия файл

@@ -0,0 +1,107 @@
package com.ningdatech.pmapi.gov.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 项目基本信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@TableName("gov_biz_project_baseinfo")
@ApiModel(value = "GovBizProjectBaseinfo对象", description = "项目基本信息表")
public class GovBizProjectBaseinfo implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
@TableId(type = IdType.AUTO)
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("基本项目区域code")
private String baseAreaCode;

@ApiModelProperty("基本项目区域名")
private String baseAreaName;

@ApiModelProperty("是否涉密")
private String baseProjIsConfidentiality;

@ApiModelProperty("项目类型")
private String baseProjType;

@ApiModelProperty("内容类别")
private String baseConstructionType;

@ApiModelProperty("项目状态")
private String baseProjSetProg;

@ApiModelProperty("信息是否有效")
private String isEffective;

@ApiModelProperty("上级主管单位")
private String baseProvManDeprt;

@ApiModelProperty("上级主管单位钉id")
private String baseProvManDeprtDing;

@ApiModelProperty("本级主管单位")
private String baseManDeprt;

@ApiModelProperty("本级主管单位ding code")
private String baseManDeprtDing;

@ApiModelProperty("本级主管单位社会统一信用代码")
private String baseManDepartUsci;

@ApiModelProperty("建设单位")
private String baseBuildDeprt;

@ApiModelProperty("建设单位Ding Code")
private String baseBuildDeprtDing;

@ApiModelProperty("建设单位社会统一信用代码")
private String baseBuildDepartUsci;

@ApiModelProperty("项目负责人")
private String baseProjPrincipal;

@ApiModelProperty("项目负责人手机号")
private String baseProjPrincipalCall;

@ApiModelProperty("项目联系人")
private String baseProjContacts;

@ApiModelProperty("项目联系人联系方式")
private String baseProjContactsCall;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 109
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectCimplement.java Целия файл

@@ -0,0 +1,109 @@
package com.ningdatech.pmapi.gov.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目实施信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@TableName("gov_biz_project_cimplement")
@ApiModel(value = "GovBizProjectCimplement对象", description = "项目实施信息表")
public class GovBizProjectCimplement implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
@TableId(type = IdType.AUTO)
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("标段编号")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("初验意见")
private String baseInitialOpinionFile;

@ApiModelProperty("信息安全等级保护测评报告")
private String baseInforLevelFile;

@ApiModelProperty("'商业密码应用评估报告'")
private String basePasswAssessFile;

@ApiModelProperty("第三方验收测试报告")
private String baseThirdAcceptFile;

@ApiModelProperty("建设核查表")
private String baseCheckFile;

@ApiModelProperty("财务审计报告")
private String baseFinanlAuditFile;

@ApiModelProperty("用户使用报告")
private String baseUserConsFile;

@ApiModelProperty("监理总结报告")
private String baseEstaSummFile;

@ApiModelProperty("IRS应用试运行报告")
private String baseIrsTestRunFile;

@ApiModelProperty("项目总结报告")
private String baseSummReportFile;

@ApiModelProperty("'是否完成日志数据归集'")
private String baseLogAggregation;

@ApiModelProperty("实际成效指标")
private String baseBusinessMetrics;

@ApiModelProperty("终审意见")
private String baseFinalExpertOpinionFile;

@ApiModelProperty("项目延期申请表")
private String baseEngineerPostpoFile;

@ApiModelProperty("变更申请单")
private String baseChangeFormFile;

@ApiModelProperty("生产批复文件")
private String baseChanFile;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 103
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectMimplement.java Целия файл

@@ -0,0 +1,103 @@
package com.ningdatech.pmapi.gov.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 运维项目实施信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@TableName("gov_biz_project_mimplement")
@ApiModel(value = "GovBizProjectMimplement对象", description = "运维项目实施信息表")
public class GovBizProjectMimplement implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
@TableId(type = IdType.AUTO)
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("标段编号")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("初验意见")
private String baseInitialOpinionFile;

@ApiModelProperty("信息安全等级保护测评报告")
private String baseInforLevelFile;

@ApiModelProperty("'商业密码应用评估报告'")
private String basePasswAssessFile;

@ApiModelProperty("第三方验收测试报告")
private String baseThirdAcceptFile;

@ApiModelProperty("用户使用报告")
private String baseUserConsFile;

@ApiModelProperty("监理总结报告")
private String baseEstaSummFile;

@ApiModelProperty("IRS应用试运行报告")
private String baseIrsTestRunFile;

@ApiModelProperty("运维总结报告")
private String baseOperatMaintenSummFile;

@ApiModelProperty("'是否完成日志数据归集'")
private String baseLogAggregation;

@ApiModelProperty("实际成效指标")
private String baseBusinessMetrics;

@ApiModelProperty("终审意见")
private String baseFinalExpertOpinionFile;

@ApiModelProperty("项目延期申请表")
private String baseEngineerPostpoFile;

@ApiModelProperty("变更报告")
private String baseEngineerAlterFile;

@ApiModelProperty("变更批复文件")
private String baseChanFile;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 98
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectProcure.java Целия файл

@@ -0,0 +1,98 @@
package com.ningdatech.pmapi.gov.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 项目采购信息
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@TableName("gov_biz_project_procure")
@ApiModel(value = "GovBizProjectProcure对象", description = "项目采购信息")
public class GovBizProjectProcure implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
@TableId(type = IdType.AUTO)
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("标段编号")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("'财政项目代码'")
private String setProjCodeFinan;

@ApiModelProperty("采购方式")
private String baseProjPurchaseWay;

@ApiModelProperty("预算执行确认书编号")
private String basePurchaseCode;

@ApiModelProperty("招标(采购)文件")
private String purchaseFile;

@ApiModelProperty("采购代理机构")
private String basePurchasingAgencies;

@ApiModelProperty("采购代理机构统一社会信用代码")
private String baseUnifiedCreditCode;

@ApiModelProperty("中标(成交)时间")
private LocalDateTime baseWinningBidTime;

@ApiModelProperty("中标(成交)金额")
private BigDecimal baseProjPurchaseAmount;

@ApiModelProperty("中标(成交)通知书")
private String biddingFile;

@ApiModelProperty("中标(成交)供应商名称")
private String baseConsDeprt;

@ApiModelProperty("中标(成交)供应商统一社会信用代码")
private String baseConsDeprtUsci;

@ApiModelProperty("采购合同")
private String purchaseContract;

@ApiModelProperty("项目款支付时间")
private LocalDateTime basePaymentTime;

@ApiModelProperty("项目款支付金额")
private BigDecimal paymentProgress;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 46
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovProjectDictionary.java Целия файл

@@ -0,0 +1,46 @@
package com.ningdatech.pmapi.gov.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目字典表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@TableName("gov_project_dictionary")
@ApiModel(value = "GovProjectDictionary对象", description = "项目字典表")
public class GovProjectDictionary implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
@TableId(type = IdType.AUTO)
private Long id;

private String createBy;
private LocalDateTime createOn;

@ApiModelProperty("类型")
private String type;

@ApiModelProperty("值")
private String value;

@ApiModelProperty("展示值")
private String label;

@ApiModelProperty("备注")
private String remark;
}

+ 139
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectApplyReq.java Целия файл

@@ -0,0 +1,139 @@
package com.ningdatech.pmapi.gov.model.req;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目申报信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_apply")
@ApiModel(value = "SzlsDaBiz331100ProjectApply对象", description = "项目申报信息")
public class ProjectApplyReq implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("财政项目代码")
private String setProjCodeFinan;

@ApiModelProperty("历年项目名称")
private String baseHistorProjName;

@ApiModelProperty("历年项目代码")
private String baseHistorProjId;

@ApiModelProperty("关联IRS应用名称")
private String baseProjSys;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("一本账重大应用名称")
private String baseAccountAppName;

@ApiModelProperty("“领域大脑”一本账名称")
private String baseBrainName;

@ApiModelProperty("单位核心业务名称")
private String baseCoreBusiness;

@ApiModelProperty("单位核心业务编码")
private String baseCoreBusinessCode;

@ApiModelProperty("项目起始时间")
private String baseProjStartTime;

@ApiModelProperty("项目终止时间")
private String baseProjEndTime;

@ApiModelProperty("项目期限")
private String baseProjDuration;

@ApiModelProperty("预算年度")
private String baseProjSetYear;

@ApiModelProperty("预算来源")
private String baseProjAmountOri;

@ApiModelProperty("预算来源说明")
private String baseBasisAmountOri;

@ApiModelProperty("项目总投资")
private String baseProjTotalAmount;

@ApiModelProperty("申报年度预算")
private String baseProjDeclAmount;

@ApiModelProperty("建设层级")
private String baseProjConsClass;

@ApiModelProperty("贯通层级")
private String baseLowestLevel;

@ApiModelProperty("立项依据")
private String baseProjBasis;

@ApiModelProperty("立项依据说明")
private String baseBasisEstablish;

@ApiModelProperty("立项依据证明材料")
private String baseProjBasisFile;

@ApiModelProperty("项目概述")
private String baseProjIntro;

@ApiModelProperty("项目内容与预期成效")
private String beseExpectedResults;

@ApiModelProperty("可行性研究报告")
private String baseResearchReportFile;

@ApiModelProperty("项目申报书")
private String baseProjApplyFile;

@ApiModelProperty("运维方案")
private String baseOperatMaintenFile;

@ApiModelProperty("其他附件")
private String baseProjOtherFile;

@ApiModelProperty("备注")
private String baseProjRemark;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

+ 91
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectApproveReq.java Целия файл

@@ -0,0 +1,91 @@
package com.ningdatech.pmapi.gov.model.req;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目立项评审信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_approve")
@ApiModel(value = "SzlsDaBiz331100ProjectApprove对象", description = "项目立项评审信息")
public class ProjectApproveReq implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("财政项目代码")
private String setProjCodeFinan;

@ApiModelProperty("评审结果")
private String baseReviewResults;

@ApiModelProperty("评审意见")
private String baseReviewOpinion;

@ApiModelProperty("评审意见附件")
private String baseReviewCommentsFile;

@ApiModelProperty("建议总投资")
private String baseExpertTotalMoney;

@ApiModelProperty("建议年度预算")
private String baseExpertYearMoney;

@ApiModelProperty("立项批复文件")
private String approvalFile;

@ApiModelProperty("建议批复总投资")
private String baseInitialReviewTotalMoney;

@ApiModelProperty("建议批复年度预算")
private String baseProjReplyAmount;

@ApiModelProperty("等保定级")
private String equalProtectionLevel;

@ApiModelProperty("初步设计方案")
private String preliminaryDesignScheme;

@ApiModelProperty("初步设计方案批复函")
private String preliminaryDesignFile;

@ApiModelProperty("年度预算下达金额")
private String releaseYearMoney;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

+ 106
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectBaseInfoReq.java Целия файл

@@ -0,0 +1,106 @@
package com.ningdatech.pmapi.gov.model.req;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目基本信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_baseinfo")
@ApiModel(value = "SzlsDaBiz331100ProjectBaseinfo对象", description = "项目基本信息")
public class ProjectBaseInfoReq implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("所属区划")
private String baseAreaName;

@ApiModelProperty("所属区划编码")
private String baseAreaCode;

@ApiModelProperty("是否涉密")
private String baseProjIsConfidentiality;

@ApiModelProperty("项目类型")
private String baseProjType;

@ApiModelProperty("内容类别")
private String baseConstructionType;

@ApiModelProperty("项目状态")
private String baseProjSetProg;

@ApiModelProperty("信息是否有效")
private String isEffective;

@ApiModelProperty("上级主管单位")
private String baseProvManDeprt;

@ApiModelProperty("上级主管单位浙政钉ID")
private String baseProvManDeprtDing;

@ApiModelProperty("本级主管单位")
private String baseManDeprt;

@ApiModelProperty("本级主管单位浙政钉ID")
private String baseManDeprtDing;

@ApiModelProperty("本级主管单位统一社会信用代码")
private String baseManDepartUsci;

@ApiModelProperty("建设单位(申报单位)")
private String baseBuildDeprt;

@ApiModelProperty("建设单位浙政钉ID")
private String baseBuildDeprtDing;

@ApiModelProperty("建设单位统一社会信用代码")
private String baseBuildDepartUsci;

@ApiModelProperty("项目负责人")
private String baseProjPrincipal;

@ApiModelProperty("项目负责人手机号")
private String baseProjPrincipalCall;

@ApiModelProperty("项目联系人")
private String baseProjContacts;

@ApiModelProperty("项目联系人手机号")
private String baseProjContactsCall;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

+ 109
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectCimplementReq.java Целия файл

@@ -0,0 +1,109 @@
package com.ningdatech.pmapi.gov.model.req;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 建设项目实施信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_cimplement")
@ApiModel(value = "SzlsDaBiz331100ProjectCimplement对象", description = "建设项目实施信息")
public class ProjectCimplementReq implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("标段代码")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("初验意见")
private String baseInitialOpinionFile;

@ApiModelProperty("信息安全等级保护测评报告")
private String baseInforLevelFile;

@ApiModelProperty("商业密码应用评估报告")
private String basePasswAssessFile;

@ApiModelProperty("第三方验收测试报告")
private String baseThirdAcceptFile;

@ApiModelProperty("建设核查表")
private String baseCheckFile;

@ApiModelProperty("财务审计报告")
private String baseFinanlAuditFile;

@ApiModelProperty("用户使用报告")
private String baseUserConsFile;

@ApiModelProperty("监理总结报告")
private String baseEstaSummFile;

@ApiModelProperty("IRS应用试运行报告")
private String baseIrsTestRunFile;

@ApiModelProperty("项目总结报告")
private String baseSummReportFile;

@ApiModelProperty("是否完成日志数据归集")
private String baseLogAggregation;

@ApiModelProperty("实际成效指标")
private String baseBusinessMetrics;

@ApiModelProperty("终验意见")
private String baseFinalExpertOpinionFile;

@ApiModelProperty("项目延期申请表")
private String baseEngineerPostpoFile;

@ApiModelProperty("变更申请单")
private String baseChangeFormFile;

@ApiModelProperty("变更批复文件")
private String baseChanFile;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

+ 97
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectMimplementReq.java Целия файл

@@ -0,0 +1,97 @@
package com.ningdatech.pmapi.gov.model.req;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 运维项目实施信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_mimplement")
@ApiModel(value = "SzlsDaBiz331100ProjectMimplement对象", description = "运维项目实施信息")
public class ProjectMimplementReq implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("标段代码")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("信息安全等级保护测评报告")
private String baseInforLevelFile;

@ApiModelProperty("商业密码应用评估报告")
private String basePasswAssessFile;

@ApiModelProperty("第三方验收测试报告")
private String baseThirdAcceptFile;

@ApiModelProperty("用户使用报告")
private String baseUserConsFile;

@ApiModelProperty("监理总结报告")
private String baseEstaSummFile;

@ApiModelProperty("运维总结报告")
private String baseOperatMaintenSummFile;

@ApiModelProperty("是否完成日志数据归集")
private String baseLogAggregation;

@ApiModelProperty("实际成效指标")
private String baseBusinessMetrics;

@ApiModelProperty("终验意见")
private String baseFinalExpertOpinionFile;

@ApiModelProperty("项目延期申请表")
private String baseEngineerPostpoFile;

@ApiModelProperty("变更报告")
private String baseEngineerAlterFile;

@ApiModelProperty("变更批复文件")
private String baseChanFile;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

+ 97
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectProcureReq.java Целия файл

@@ -0,0 +1,97 @@
package com.ningdatech.pmapi.gov.model.req;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目采购信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_procure")
@ApiModel(value = "SzlsDaBiz331100ProjectProcure对象", description = "项目采购信息")
public class ProjectProcureReq implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("标段代码")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("财政项目代码")
private String setProjCodeFinan;

@ApiModelProperty("采购方式")
private String baseProjPurchaseWay;

@ApiModelProperty("预算执行确认书编号")
private String basePurchaseCode;

@ApiModelProperty("招标(采购)文件")
private String purchaseFile;

@ApiModelProperty("采购代理机构")
private String basePurchasingAgencies;

@ApiModelProperty("采购代理机构统一社会信用代码")
private String baseUnifiedCreditCode;

@ApiModelProperty("中标(成交)时间")
private String baseWinningBidTime;

@ApiModelProperty("中标(成交)金额")
private String baseProjPurchaseAmount;

@ApiModelProperty("中标(成交)通知书")
private String biddingFile;

@ApiModelProperty("中标(成交)供应商名称")
private String baseConsDeprt;

@ApiModelProperty("中标(成交)供应商统一社会信用代码")
private String baseConsDeprtUsci;

@ApiModelProperty("采购合同")
private String purchaseContract;

@ApiModelProperty("项目款支付时间")
private String basePaymentTime;

@ApiModelProperty("项目款支付金额")
private String paymentProgress;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

+ 32
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/req/ProjectPushReq.java Целия файл

@@ -0,0 +1,32 @@
package com.ningdatech.pmapi.gov.model.req;

import io.swagger.annotations.ApiModel;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
* @Classname ProjectPushReq
* @Description
* @Date 2023/8/25 9:45
* @Author PoffyZhang
*/
@Data
@ApiModel(value = "ProjectPushReq", description = "项目保存")
public class ProjectPushReq {

@NotNull(message = "项目基本信息不能为空")
private ProjectBaseInfoReq baseinfo;

@NotNull(message = "项目申报信息不能为空")
private ProjectApplyReq apply;

@NotNull(message = "项目审批信息不能为空")
private ProjectApproveReq approve;

private ProjectCimplementReq cimplement;

private ProjectMimplementReq mimplement;

private ProjectProcureReq procure;
}

+ 135
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectApplyVO.java Целия файл

@@ -0,0 +1,135 @@
package com.ningdatech.pmapi.gov.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 项目申报信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectApply对象", description = "项目申报表")
public class GovBizProjectApplyVO implements Serializable {

private static final long serialVersionUID = 1L;
@ApiModelProperty("主键")
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("发改委项目代码")
private String baseDevelopCode;

@ApiModelProperty("财政项目代码")
private String setProjCodeFinan;

@ApiModelProperty("历年项目名称")
private String baseHistorProjName;

@ApiModelProperty("'历年项目编码'")
private String baseHistorProjId;

@ApiModelProperty("关联IRS应用名称")
private String baseProjSys;

@ApiModelProperty("关联IRS应用编号")
private String baseProjSysCpde;

@ApiModelProperty("一本账重大应用名称")
private String baseAccountAppName;

@ApiModelProperty("领域大脑 一本账名称")
private String baseBrainName;

@ApiModelProperty("单位核心业务名称")
private String baseCoreBusiness;

@ApiModelProperty("单位核心业务编号")
private String baseCoreBusinessCode;

@ApiModelProperty("项目开始时间")
private LocalDateTime baseProjStartTime;

@ApiModelProperty("项目结束时间")
private LocalDateTime baseProjEndTime;

@ApiModelProperty("项目期限")
private LocalDateTime baseProjDuration;

@ApiModelProperty("项目年度")
private String baseProjSetYear;

@ApiModelProperty("预算来源")
private String baseProjAmountOri;

@ApiModelProperty("预算来源说明")
private String baseBasisAmountOri;

@ApiModelProperty("项目总投资")
private BigDecimal baseProjTotalAmount;

@ApiModelProperty("申报年度预算")
private BigDecimal baseProjDeclAmount;

@ApiModelProperty("建设层级")
private String baseProjConsClass;

@ApiModelProperty("贯通层级")
private String baseLowestLevel;

@ApiModelProperty("立项依据")
private String baseProjBasis;

@ApiModelProperty("立项依据说明")
private String baseBasisEstablish;

@ApiModelProperty("立项依据证明材料")
private String baseProjBasisFile;

@ApiModelProperty("项目概述")
private String baseProjIntro;

@ApiModelProperty("项目内容与预期成效")
private String beseExpectedResults;

@ApiModelProperty("可研报告")
private String baseResearchReportFile;

@ApiModelProperty("项目申报书")
private String baseProjApplyFile;

@ApiModelProperty("运维方案")
private String baseOperatMaintenFile;

@ApiModelProperty("其他附件")
private String baseProjOtherFile;

@ApiModelProperty("备注")
private String baseProjRemark;

@ApiModelProperty("数据来源 区域code")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 88
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectApproveVO.java Целия файл

@@ -0,0 +1,88 @@
package com.ningdatech.pmapi.gov.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 项目审核信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectBaseinfo对象", description = "项目审核信息表")
public class GovBizProjectApproveVO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("'发改项目代码'")
private String baseDevelopCode;

@ApiModelProperty("'财政项目代码'")
private String setProjCodeFinan;

@ApiModelProperty("评审结果")
private String baseReviewResults;

@ApiModelProperty("评审意见")
private String baseReviewOpinion;

@ApiModelProperty("评审意见附件")
private String baseReviewCommentFile;

@ApiModelProperty("建议总投资")
private BigDecimal baseExpertTotalMoney;

@ApiModelProperty("'建议年度预算'")
private BigDecimal baseExpertYearMoney;

@ApiModelProperty("立项批复文件")
private String approvalFile;

@ApiModelProperty("建议批复总投资")
private BigDecimal baseInitialReviewTotalMoney;

@ApiModelProperty("'建议批复年度预算'")
private BigDecimal baseProjReplyAmount;

@ApiModelProperty("等保定级")
private String equalProtectionLevel;

@ApiModelProperty("初步设计方案")
private String preliminaryDesignScheme;

@ApiModelProperty("初步设计方案批复函")
private String preliminaryDesignFile;

@ApiModelProperty("年度预算下达金额")
private BigDecimal releaseYearMoney;


@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 101
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectBaseinfoVO.java Целия файл

@@ -0,0 +1,101 @@
package com.ningdatech.pmapi.gov.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目基本信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectBaseinfo对象", description = "项目基本信息表")
public class GovBizProjectBaseinfoVO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("基本项目区域code")
private String baseAreaCode;

@ApiModelProperty("基本项目区域名")
private String baseAreaName;

@ApiModelProperty("是否涉密")
private String baseProjIsConfidentiality;

@ApiModelProperty("项目类型")
private String baseProjType;

@ApiModelProperty("内容类别")
private String baseConstructionType;

@ApiModelProperty("项目状态")
private String baseProjSetProg;

@ApiModelProperty("信息是否有效")
private String isEffective;

@ApiModelProperty("上级主管单位")
private String baseProvManDeprt;

@ApiModelProperty("上级主管单位钉id")
private String baseProvManDepartDing;

@ApiModelProperty("本级主管单位")
private String baseManDeprt;

@ApiModelProperty("本级主管单位ding code")
private String baseManDeprtDing;

@ApiModelProperty("本级主管单位社会统一信用代码")
private String baseManDepartUsci;

@ApiModelProperty("建设单位")
private String baseBuildDeprt;

@ApiModelProperty("建设单位Ding Code")
private String baseBuildDeprtDing;

@ApiModelProperty("建设单位社会统一信用代码")
private String baseBuildDeprtUsci;

@ApiModelProperty("项目负责人")
private String baseProjPrincipal;

@ApiModelProperty("项目负责人手机号")
private String baseProjPrincipalCall;

@ApiModelProperty("项目联系人")
private String baseProjContacts;

@ApiModelProperty("项目联系人联系方式")
private String baseProjContactsCall;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 104
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectCimplementVO.java Целия файл

@@ -0,0 +1,104 @@
package com.ningdatech.pmapi.gov.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目实施信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectCimplement对象", description = "项目实施信息表")
public class GovBizProjectCimplementVO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("标段编号")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("初验意见")
private String baseInitialOpinionFile;

@ApiModelProperty("信息安全等级保护测评报告")
private String baseInforLevelFile;

@ApiModelProperty("'商业密码应用评估报告'")
private String basePasswAssessFile;

@ApiModelProperty("第三方验收测试报告")
private String baseThirdAcceptFile;

@ApiModelProperty("建设核查表")
private String baseCheckFile;

@ApiModelProperty("财务审计报告")
private String baseFinanlAuditFile;

@ApiModelProperty("用户使用报告")
private String baseUserConsFile;

@ApiModelProperty("监理总结报告")
private String baseEstaSummFile;

@ApiModelProperty("IRS应用试运行报告")
private String baseIrsTestRunFile;

@ApiModelProperty("项目总结报告")
private String baseSummReportFile;

@ApiModelProperty("'是否完成日志数据归集'")
private String baseLogAggregation;

@ApiModelProperty("实际成效指标")
private String baseBusinessMetrics;

@ApiModelProperty("终审意见")
private String baseFinalExpertOpinionFile;

@ApiModelProperty("项目延期申请表")
private String baseEngineerPostpoFile;

@ApiModelProperty("变更申请单")
private String baseChangeFormFile;

@ApiModelProperty("生产批复文件")
private String baseChanFile;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 45
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectDetailVO.java Целия файл

@@ -0,0 +1,45 @@
package com.ningdatech.pmapi.gov.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;

/**
* <p>
* 项目归集总VO
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectDetailVO", description = "项目归集总详情VO")
public class GovBizProjectDetailVO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("项目基本信息")
private GovBizProjectBaseinfoVO baseinfo;

@ApiModelProperty("项目申报信息")
private GovBizProjectApplyVO apply;

@ApiModelProperty("项目审批信息")
private GovBizProjectApproveVO approve;

@ApiModelProperty("实施项目实施信息")
private GovBizProjectCimplementVO cimplement;

@ApiModelProperty("运维项目实施信息")
private GovBizProjectMimplementVO mimplement;

@ApiModelProperty("项目采购信息")
private GovBizProjectProcureVO procure;
}

+ 47
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectListVO.java Целия файл

@@ -0,0 +1,47 @@
package com.ningdatech.pmapi.gov.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
* <p>
* 项目归集列表VO
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectListVO", description = "项目归集列表VO")
public class GovBizProjectListVO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("建设单位")
private String baseBuildDeprt;

@ApiModelProperty("建设单位Ding Code")
private String baseBuildDeprtDing;

@ApiModelProperty("基本项目区域code")
private String baseAreaCode;

@ApiModelProperty("基本项目区域名")
private String baseAreaName;

@ApiModelProperty("项目总投资")
private BigDecimal baseProjTotalAmount;

@ApiModelProperty("申报年度预算")
private BigDecimal baseProjDeclAmount;
}

+ 98
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectMimplementVO.java Целия файл

@@ -0,0 +1,98 @@
package com.ningdatech.pmapi.gov.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 运维项目实施信息表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectMimplement对象", description = "运维项目实施信息表")
public class GovBizProjectMimplementVO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("标段编号")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("初验意见")
private String baseInitialOpinionFile;

@ApiModelProperty("信息安全等级保护测评报告")
private String baseInforLevelFile;

@ApiModelProperty("'商业密码应用评估报告'")
private String basePasswAssessFile;

@ApiModelProperty("第三方验收测试报告")
private String baseThirdAcceptFile;

@ApiModelProperty("用户使用报告")
private String baseUserConsFile;

@ApiModelProperty("监理总结报告")
private String baseEstaSummFile;

@ApiModelProperty("IRS应用试运行报告")
private String baseIrsTestRunFile;

@ApiModelProperty("运维总结报告")
private String baseOperatMaintenSummFile;

@ApiModelProperty("'是否完成日志数据归集'")
private String baseLogAggregation;

@ApiModelProperty("实际成效指标")
private String baseBusinessMetrics;

@ApiModelProperty("终审意见")
private String baseFinalExpertOpinionFile;

@ApiModelProperty("项目延期申请表")
private String baseEngineerPostpoFile;

@ApiModelProperty("变更报告")
private String baseEngineerAlterFile;

@ApiModelProperty("变更批复文件")
private String baseChanFile;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 93
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovBizProjectProcureVO.java Целия файл

@@ -0,0 +1,93 @@
package com.ningdatech.pmapi.gov.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 项目采购信息
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovBizProjectProcure对象", description = "项目采购信息")
public class GovBizProjectProcureVO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
private Long id;

@ApiModelProperty("项目编号")
private String baseProjId;

@ApiModelProperty("基本项目名称")
private String baseProjName;

@ApiModelProperty("标段编号")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("'财政项目代码'")
private String setProjCodeFinan;

@ApiModelProperty("采购方式")
private String baseProjPurchaseWay;

@ApiModelProperty("预算执行确认书编号")
private String basePurchaseCode;

@ApiModelProperty("招标(采购)文件")
private String purchaseFile;

@ApiModelProperty("采购代理机构")
private String basePurchasingAgencies;

@ApiModelProperty("采购代理机构统一社会信用代码")
private String baseUnifiedCreditCode;

@ApiModelProperty("中标(成交)时间")
private LocalDateTime baseWinningBidTime;

@ApiModelProperty("中标(成交)金额")
private BigDecimal baseProjPurchaseAmount;

@ApiModelProperty("中标(成交)通知书")
private String biddingFile;

@ApiModelProperty("中标(成交)供应商名称")
private String baseConsDeprt;

@ApiModelProperty("中标(成交)供应商统一社会信用代码")
private String baseConsDeprtUsci;

@ApiModelProperty("采购合同")
private String purchaseContract;

@ApiModelProperty("项目款支付时间")
private LocalDateTime basePaymentTime;

@ApiModelProperty("项目款支付金额")
private BigDecimal paymentProgress;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("生产时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("入库时间")
private LocalDateTime tongTime;
}

+ 41
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/model/vo/GovProjectDictionaryVO.java Целия файл

@@ -0,0 +1,41 @@
package com.ningdatech.pmapi.gov.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目字典表
* </p>
*
* @author ZPF
* @since 2023-08-02
*/
@Data
@ApiModel(value = "GovProjectDictionaryVO", description = "项目字典表")
public class GovProjectDictionaryVO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("主键")
private Long id;

private String createBy;
private LocalDateTime createOn;

@ApiModelProperty("类型")
private String type;

@ApiModelProperty("值")
private String value;

@ApiModelProperty("展示值")
private String label;

@ApiModelProperty("备注")
private String remark;
}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectApplyService.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectApply;

/**
* <p>
* 服务类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface IGovBizProjectApplyService extends IService<GovBizProjectApply> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectApproveService.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectApprove;

/**
* <p>
* 服务类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface IGovBizProjectApproveService extends IService<GovBizProjectApprove> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectBaseinfoService.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectBaseinfo;

/**
* <p>
* 服务类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface IGovBizProjectBaseinfoService extends IService<GovBizProjectBaseinfo> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectCimplementService.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectCimplement;

/**
* <p>
* 服务类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface IGovBizProjectCimplementService extends IService<GovBizProjectCimplement> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectMimplementService.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectMimplement;

/**
* <p>
* 服务类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface IGovBizProjectMimplementService extends IService<GovBizProjectMimplement> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovBizProjectProcureService.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectProcure;

/**
* <p>
* 服务类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface IGovBizProjectProcureService extends IService<GovBizProjectProcure> {

}

+ 16
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/IGovProjectDictionaryService.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.pmapi.gov.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.gov.model.entity.GovProjectDictionary;

/**
* <p>
* 服务类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
public interface IGovProjectDictionaryService extends IService<GovProjectDictionary> {

}

+ 21
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectApplyServiceImpl.java Целия файл

@@ -0,0 +1,21 @@
package com.ningdatech.pmapi.gov.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ningdatech.pmapi.gov.mapper.GovBizProjectApplyMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectApply;
import com.ningdatech.pmapi.gov.service.IGovBizProjectApplyService;
import org.springframework.stereotype.Service;

/**
* <p>
* 服务实现类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
@Service
public class GovBizProjectApplyServiceImpl extends
ServiceImpl<GovBizProjectApplyMapper, GovBizProjectApply> implements IGovBizProjectApplyService {

}

+ 21
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectApproveServiceImpl.java Целия файл

@@ -0,0 +1,21 @@
package com.ningdatech.pmapi.gov.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ningdatech.pmapi.gov.mapper.GovBizProjectApproveMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectApprove;
import com.ningdatech.pmapi.gov.service.IGovBizProjectApproveService;
import org.springframework.stereotype.Service;

/**
* <p>
* 服务实现类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
@Service
public class GovBizProjectApproveServiceImpl extends
ServiceImpl<GovBizProjectApproveMapper, GovBizProjectApprove> implements IGovBizProjectApproveService {

}

+ 21
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectBaseinfoServiceImpl.java Целия файл

@@ -0,0 +1,21 @@
package com.ningdatech.pmapi.gov.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ningdatech.pmapi.gov.mapper.GovBizProjectBaseinfoMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectBaseinfo;
import com.ningdatech.pmapi.gov.service.IGovBizProjectBaseinfoService;
import org.springframework.stereotype.Service;

/**
* <p>
* 服务实现类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
@Service
public class GovBizProjectBaseinfoServiceImpl extends
ServiceImpl<GovBizProjectBaseinfoMapper, GovBizProjectBaseinfo> implements IGovBizProjectBaseinfoService {

}

+ 21
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectCimplementServiceImpl.java Целия файл

@@ -0,0 +1,21 @@
package com.ningdatech.pmapi.gov.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ningdatech.pmapi.gov.mapper.GovBizProjectCimplementMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectCimplement;
import com.ningdatech.pmapi.gov.service.IGovBizProjectCimplementService;
import org.springframework.stereotype.Service;

/**
* <p>
* 服务实现类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
@Service
public class GovBizProjectCimplementServiceImpl extends
ServiceImpl<GovBizProjectCimplementMapper, GovBizProjectCimplement> implements IGovBizProjectCimplementService {

}

+ 21
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectMimplementServiceImpl.java Целия файл

@@ -0,0 +1,21 @@
package com.ningdatech.pmapi.gov.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ningdatech.pmapi.gov.mapper.GovBizProjectMimplementMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectMimplement;
import com.ningdatech.pmapi.gov.service.IGovBizProjectMimplementService;
import org.springframework.stereotype.Service;

/**
* <p>
* 服务实现类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
@Service
public class GovBizProjectMimplementServiceImpl extends
ServiceImpl<GovBizProjectMimplementMapper, GovBizProjectMimplement> implements IGovBizProjectMimplementService {

}

+ 21
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovBizProjectProcureServiceImpl.java Целия файл

@@ -0,0 +1,21 @@
package com.ningdatech.pmapi.gov.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ningdatech.pmapi.gov.mapper.GovBizProjectProcureMapper;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectProcure;
import com.ningdatech.pmapi.gov.service.IGovBizProjectProcureService;
import org.springframework.stereotype.Service;

/**
* <p>
* 服务实现类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
@Service
public class GovBizProjectProcureServiceImpl extends
ServiceImpl<GovBizProjectProcureMapper, GovBizProjectProcure> implements IGovBizProjectProcureService {

}

+ 21
- 0
pmapi/src/main/java/com/ningdatech/pmapi/gov/service/impl/GovProjectDictionaryServiceImpl.java Целия файл

@@ -0,0 +1,21 @@
package com.ningdatech.pmapi.gov.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ningdatech.pmapi.gov.mapper.GovProjectDictionaryMapper;
import com.ningdatech.pmapi.gov.model.entity.GovProjectDictionary;
import com.ningdatech.pmapi.gov.service.IGovProjectDictionaryService;
import org.springframework.stereotype.Service;

/**
* <p>
* 服务实现类
* </p>
*
* @author zpf
* @since 2023-08-23
*/
@Service
public class GovProjectDictionaryServiceImpl extends
ServiceImpl<GovProjectDictionaryMapper, GovProjectDictionary> implements IGovProjectDictionaryService {

}

+ 7
- 0
pmapi/src/main/java/com/ningdatech/pmapi/performance/controller/PerformanceAppraisalPlanController.java Целия файл

@@ -12,6 +12,7 @@ import com.ningdatech.pmapi.performance.model.vo.PerformanceAppraisalApplication
import com.ningdatech.pmapi.performance.model.vo.PerformanceAppraisalProjectGroupVO;
import com.ningdatech.pmapi.performance.model.vo.PerformanceAppraisalProjectVO;
import com.ningdatech.pmapi.performance.model.vo.PerformanceAppraisalVO;
import com.ningdatech.pmapi.projectlib.model.vo.ProjectApplicationVO;
import com.ningdatech.pmapi.projectlib.model.vo.ProjectLibListItemVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -60,6 +61,12 @@ public class PerformanceAppraisalPlanController {
return performanceAppraisalPlanManage.finalProjectList(req);
}

@GetMapping("/final-application-list")
@ApiOperation("评价计划-终验应用列表")
public PageVo<ProjectApplicationVO> finalApplicationList(PerformanceAppraisalListReq req) {
return performanceAppraisalPlanManage.finalApplicationList(req);
}

@PostMapping("/addProject")
@ApiOperation("评价计划-添加待评价项目")
@WebLog("评价计划-添加待评价项目")


+ 2
- 2
pmapi/src/main/java/com/ningdatech/pmapi/performance/convert/PerformanceAppraisalConveter.java Целия файл

@@ -59,8 +59,8 @@ public class PerformanceAppraisalConveter {
vo.setAppId(a.getApplicationId());
if(map.containsKey(a.getApplicationId())){
ProjectApplication application = map.get(a.getApplicationId());
vo.setApplicationName(StringUtils.isNotBlank(application.getApplicationName())?
application.getApplicationName() : application.getRelatedExistsApplication());
vo.setApplicationName(StringUtils.isNotBlank(application.getRelatedExistsApplication())?
application.getRelatedExistsApplication() : application.getApplicationName());
vo.setApplicationType(application.getApplicationType());
vo.setBizDomain(application.getBizDomain());
vo.setBuildOrgName(application.getBuildOrgName());


+ 3
- 60
pmapi/src/main/java/com/ningdatech/pmapi/performance/manage/AppAppraisalManage.java Целия файл

@@ -63,7 +63,6 @@ public class AppAppraisalManage {
*/
public PageVo<PerformanceAppraisalVO> list(PerformanceAppraisalListReq req) {
UserInfoDetails user = LoginUserUtil.loginUserDetail();
String employeeCode = user.getEmployeeCode();
// 获取当前登录用户的角色列表,只有绩效复评人员才能查看该列表
List<Role> userRoleList = user.getUserRoleList();
List<Long> roleIdList = userRoleList.stream().map(Role::getId).collect(Collectors.toList());
@@ -85,46 +84,13 @@ public class AppAppraisalManage {
return PageVo.empty();
}
Set<Long> paIds = paas.stream().map(PerformanceAppraisalApplication::getAppraisalId).collect(Collectors.toSet());

// 获取评价计划关联的分组信息
List<PerformanceAppraisalProjectGroup> groups = groupService.list(Wrappers.lambdaQuery(PerformanceAppraisalProjectGroup.class)
.in(PerformanceAppraisalProjectGroup::getAppraisalId, paIds));
// 获取当前登录复评员所在的分组信息
List<PerformanceAppraisalProjectGroup> groupList = groups.stream().filter(g -> {
String reAppraisalUsers = g.getReAppraisalUsers();
List<String> empCodeList = Lists.newArrayList();
if (reAppraisalUsers.contains(StrPool.COMMA)) {
empCodeList.addAll(Arrays.asList(reAppraisalUsers.split(StrPool.COMMA)));
}else {
empCodeList.add(reAppraisalUsers);
}
if (empCodeList.contains(employeeCode)) {
return true;
}
return false;
}).collect(Collectors.toList());
// 当前登录复评员用户,没有参加评价计划
if (CollUtil.isEmpty(groupList)){
return PageVo.empty();
}
// 因为一个复评用户只能出现在一个计划的一个分组中 所以可以将分组信息按评价计划分组
Map<Long, PerformanceAppraisalProjectGroup> groupMap = groupList.stream().collect(Collectors.toMap(PerformanceAppraisalProjectGroup::getAppraisalId, g -> g));
// 获取分组所在的评价计划ID
List<Long> appraisalIds = groupList.stream().map(PerformanceAppraisalProjectGroup::getAppraisalId).collect(Collectors.toList());

// 获取复评计划列表
Page<PerformanceAppraisal> page = req.page();
LambdaQueryWrapper<PerformanceAppraisal> wrapper = Wrappers.lambdaQuery(PerformanceAppraisal.class)
.in(PerformanceAppraisal::getId,appraisalIds)
.in(PerformanceAppraisal::getId,paIds)
.orderByDesc(PerformanceAppraisal::getUpdateOn);
performanceAppraisalService.page(page,wrapper);
List<PerformanceAppraisalVO> res = page.getRecords().stream()
.map(p -> {
PerformanceAppraisalVO vo = BeanUtil.copyProperties(p, PerformanceAppraisalVO.class);
PerformanceAppraisalProjectGroup group = groupMap.get(p.getId());
vo.setReAppraisalGroupId(group.getId());
return vo;
})
.map(p -> BeanUtil.copyProperties(p, PerformanceAppraisalVO.class))
.collect(Collectors.toList());
return PageVo.of(res,page.getTotal());
}
@@ -137,18 +103,6 @@ public class AppAppraisalManage {
PerformanceAppraisal plan = performanceAppraisalService.getById(planId);
VUtils.isTrue(Objects.isNull(plan)).throwMessage("该评价计划不存在!");

// 判断当前评价计划分组是否存在
List<PerformanceAppraisalProjectGroup> projectGroups = groupService.list(Wrappers.lambdaQuery(PerformanceAppraisalProjectGroup.class)
.eq(PerformanceAppraisalProjectGroup::getAppraisalId, planId));
if (CollUtil.isEmpty(projectGroups)){
throw new BizException("当前应用所在评价计划的分组信息不存在");
}
// 判断分组内是否添加复评人员
List<String> reUsers = projectGroups.stream().map(PerformanceAppraisalProjectGroup::getReAppraisalUsers).collect(Collectors.toList());
if (CollUtil.isEmpty(reUsers)){
throw new BizException("当前评价计划分组内未添加复评人员!");
}

// 获取分组所在评价计划添加的未完成评价的应用信息
List<PerformanceAppraisalApplication> paas = performanceAppraisalApplicationService.list(Wrappers.lambdaQuery(PerformanceAppraisalApplication.class)
.eq(PerformanceAppraisalApplication::getAppraisalId, planId)
@@ -206,18 +160,7 @@ public class AppAppraisalManage {
PerformanceAppraisal plan = performanceAppraisalService.getById(planId);
VUtils.isTrue(Objects.isNull(plan)).throwMessage("该评价计划不存在!");

// 判断当前评价计划分组是否存在
List<PerformanceAppraisalProjectGroup> projectGroups = groupService.list(Wrappers.lambdaQuery(PerformanceAppraisalProjectGroup.class)
.eq(PerformanceAppraisalProjectGroup::getAppraisalId, planId));
if (CollUtil.isEmpty(projectGroups)){
throw new BizException("当前应用所在评价计划的分组信息不存在");
}
// 判断分组内是否添加复评人员
List<String> reUsers = projectGroups.stream().map(PerformanceAppraisalProjectGroup::getReAppraisalUsers).collect(Collectors.toList());
if (CollUtil.isEmpty(reUsers)){
throw new BizException("当前评价计划分组内未添加复评人员!");
}
// 获取分组所在评价计划添加的已完成评价的应用信息
// 获取评价计划添加的已完成评价的应用信息
List<PerformanceAppraisalApplication> paas = performanceAppraisalApplicationService.list(Wrappers.lambdaQuery(PerformanceAppraisalApplication.class)
.eq(PerformanceAppraisalApplication::getAppraisalId, planId)
.eq(PerformanceAppraisalApplication::getIsCompleteAppraisal, Boolean.TRUE));


+ 3
- 2
pmapi/src/main/java/com/ningdatech/pmapi/performance/manage/IndicatorConfigManage.java Целия файл

@@ -10,6 +10,7 @@ import com.ningdatech.basic.exception.BizException;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.basic.util.StrPool;
import com.ningdatech.pmapi.common.constant.BizConst;
import com.ningdatech.pmapi.common.constant.CommonConst;
import com.ningdatech.pmapi.common.enumeration.CommonEnum;
import com.ningdatech.pmapi.performance.enumration.PerformanceTemplateTypeEnum;
@@ -181,9 +182,9 @@ public class IndicatorConfigManage {
.eq(PerformanceIndicatorProjectTemplateDetail::getIsAdditional,Boolean.TRUE));
analysisAdditionalTemplateDetails(dto.getAdditionalIndexDetails(),template.getId());
}
return "保存成功";
return BizConst.SAVE_SUCCESS;
}
throw new BizException("保存失败!");
throw new BizException(BizConst.SAVE_FAIL);
}

/**


+ 119
- 13
pmapi/src/main/java/com/ningdatech/pmapi/performance/manage/PerformanceAppraisalPlanManage.java Целия файл

@@ -9,7 +9,10 @@ import com.ningdatech.pmapi.performance.service.*;
import com.ningdatech.pmapi.projectlib.helper.ProjectHelper;
import com.ningdatech.pmapi.projectlib.manage.ProjectLibManage;
import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq;
import com.ningdatech.pmapi.projectlib.model.vo.ProjectApplicationVO;
import com.ningdatech.pmapi.projectlib.model.vo.ProjectLibListItemVO;
import com.wflow.workflow.bean.vo.ProcessTaskVo;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

@@ -85,6 +88,7 @@ public class PerformanceAppraisalPlanManage {
private final IPerformanceAppraisalScoreInfoService performanceAppraisalScoreInfoService;
private final IPerformanceAppraisalAppScoreInfoService performanceAppraisalAppScoreInfoService;
private final ProjectLibManage projectLibManage;
private final IProjectApplicationService projectApplicationService;

/**
* 绩效列表
@@ -92,15 +96,15 @@ public class PerformanceAppraisalPlanManage {
* @return
*/
public PageVo<PerformanceAppraisalVO> list(PerformanceAppraisalListReq req) {
UserInfoDetails userDetail = LoginUserUtil.loginUserDetail();
String regionCode = userDetail.getRegionCode();
Page<PerformanceAppraisal> page = req.page();
String regionCode = req.getRegionCode();
LambdaQueryWrapper<PerformanceAppraisal> wrapper = Wrappers.lambdaQuery(PerformanceAppraisal.class)
.like(StringUtils.isNotBlank(req.getPlanName()),PerformanceAppraisal::getName,req.getPlanName())
.ge(Objects.nonNull(req.getStart()),PerformanceAppraisal::getCreateOn,req.getStart())
.le(Objects.nonNull(req.getEnd()),PerformanceAppraisal::getCreateOn,req.getEnd())
.eq(PerformanceAppraisal::getRegionCode,regionCode)
.eq(StringUtils.isNotBlank(regionCode), PerformanceAppraisal::getRegionCode,regionCode)
.orderByDesc(PerformanceAppraisal::getUpdateOn);
// 如果登录用户是区域管理员,能看到本区域的评价计划
performanceAppraisalService.page(page,wrapper);
if(0L == page.getTotal()){
return PageVo.empty();
@@ -289,12 +293,28 @@ public class PerformanceAppraisalPlanManage {
pa.setUpdateOn(LocalDateTime.now());
pa.setUpdateBy(user.getUsername());
performanceAppraisalService.updateById(pa);
String target = editDTO.getTarget();
// 如果新编辑的评价计划不包含项目,删除原计划添加的评价项目信息
if (StringUtils.isNotBlank(target) && !target.contains(EvalObjectEnum.PROJECT.getCode())){
performanceAppraisalProjectService.remove(Wrappers.lambdaQuery(PerformanceAppraisalProject.class)
.eq(PerformanceAppraisalProject::getAppraisalId,editDTO.getId()));
}

// 如果新编辑的评价计划不包含应用,删除原计划添加的评价应用信息
if (StringUtils.isNotBlank(target) && !target.contains(EvalObjectEnum.APP.getCode())){
performanceAppraisalApplicationService.remove(Wrappers.lambdaQuery(PerformanceAppraisalApplication.class)
.eq(PerformanceAppraisalApplication::getAppraisalId,editDTO.getId()));
}

if(CollUtil.isNotEmpty(editDTO.getProjects())){
if(StringUtils.isNotBlank(target) &&
target.contains(EvalObjectEnum.PROJECT.getCode()) &&
CollUtil.isNotEmpty(editDTO.getProjects())){
saveProjects(editDTO,user);
}

if(CollUtil.isNotEmpty(editDTO.getApplicationIds())){
if(StringUtils.isNotBlank(target) &&
target.contains(EvalObjectEnum.APP.getCode()) &&
CollUtil.isNotEmpty(editDTO.getApplicationIds())){
saveApplications(editDTO,user);
}

@@ -430,7 +450,8 @@ public class PerformanceAppraisalPlanManage {
throw new BizException(names + CommonConst.APP_REPEAT);
}

Map<Long, ProjectApplication> applicationMap = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class).in(ProjectApplication::getId, applicationIds)).stream()
Map<Long, ProjectApplication> applicationMap = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class)
.in(ProjectApplication::getId, applicationIdList)).stream()
.collect(Collectors.toMap(ProjectApplication::getId, a -> a));
for(Long applicationId : applicationIdList){
PerformanceAppraisalApplication paa = new PerformanceAppraisalApplication();
@@ -513,10 +534,10 @@ public class PerformanceAppraisalPlanManage {
.eq(PerformanceAppraisalAppScoreInfo::getAppraisalId,editDTO.getId())
.in(PerformanceAppraisalAppScoreInfo::getApplicationId,applicationIdList));

List<Long> applicationIds = editDTO.getApplicationIds();
Map<Long, ProjectApplication> applicationMap = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class).in(ProjectApplication::getId, applicationIds)).stream()
Map<Long, ProjectApplication> applicationMap = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class)
.in(ProjectApplication::getId, applicationIdList)).stream()
.collect(Collectors.toMap(ProjectApplication::getId, a -> a));
for(Long applicationId : applicationIds){
for(Long applicationId : applicationIdList){
PerformanceAppraisalApplication paa = new PerformanceAppraisalApplication();
paa.setAppraisalId(editDTO.getId());
paa.setApplicationId(applicationId);
@@ -909,7 +930,7 @@ public class PerformanceAppraisalPlanManage {
vo.setAppId(r.getId());
vo.setAppraisalProjectId(r.getProjectId());
vo.setAppraisalProjectCode(r.getProjectCode());
vo.setApplicationName(Objects.nonNull(r.getApplicationName()) ? r.getApplicationName() : r.getRelatedExistsApplication());
vo.setApplicationName(Objects.nonNull(r.getRelatedExistsApplication()) ? r.getRelatedExistsApplication() : r.getApplicationName());
vo.setBuildOrgName(r.getBuildOrgName());
vo.setApplicationType(r.getApplicationType());
vo.setBizDomain(r.getBizDomain());
@@ -1008,6 +1029,9 @@ public class PerformanceAppraisalPlanManage {
List<PerformanceAppraisalProject> appraisalProjectList = performanceAppraisalProjectService.list(Wrappers.lambdaQuery(PerformanceAppraisalProject.class)
.eq(PerformanceAppraisalProject::getAppraisalId, appraisalId));
List<String> projectCodes = appraisalProjectList.stream().map(PerformanceAppraisalProject::getProjectCode).collect(Collectors.toList());
if (CollUtil.isEmpty(projectCodes)){
return PageVo.empty();
}
LambdaQueryWrapper<Project> wrapper = Wrappers.lambdaQuery(Project.class)
.in(Project::getProjectCode, projectCodes)
.eq(Project::getNewest, Boolean.TRUE);
@@ -1053,8 +1077,8 @@ public class PerformanceAppraisalPlanManage {
param.setBuildOrgName(buildOrgName);
param.setProjectType(projectType);
param.setProjectYear(projectYear);
param.setRegionCode(user.getRegionCode());
param.setStatus(ProjectStatusEnum.ACCEPTED.getCode());
PageVo<ProjectLibListItemVO> resList = projectLibManage.projectLibListWithPermission(param, user);
// 获取已添加到评价计划中的项目
List<String> projectCodes = performanceAppraisalProjectService.list().stream()
.map(PerformanceAppraisalProject::getProjectCode).collect(Collectors.toList());
@@ -1068,7 +1092,89 @@ public class PerformanceAppraisalPlanManage {
}
}
// 过滤掉已经添加到评价计划中的项目(如果是编辑评价计划,保留当前计划已添加的项目)
List<ProjectLibListItemVO> result = resList.getRecords().stream().filter(r -> !projectCodes.contains(r.getProjectCode())).collect(Collectors.toList());
return PageVo.of(result,result.size());
param.setProjectCodes(projectCodes);
return projectLibManage.projectLibListWithPermission(param, user);
}

public PageVo<ProjectApplicationVO> finalApplicationList(PerformanceAppraisalListReq req) {
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId());
String regionCode = user.getRegionCode();
Long appraisalId = req.getAppraisalId();

LambdaQueryWrapper<ProjectApplication> wrapper = Wrappers.lambdaQuery(ProjectApplication.class)
.like(StringUtils.isNotBlank(req.getBuildOrgName()), ProjectApplication::getBuildOrgName, req.getBuildOrgName());

if (StringUtils.isNotBlank(req.getApplicationName())) {
wrapper.and(q1 -> q1.like(ProjectApplication::getApplicationName, req.getApplicationName())
.or(q2 -> q2.like(ProjectApplication::getRelatedExistsApplication, req.getApplicationName())));
}
// 获取本区域已验收的项目关联的应用
List<Project> projectList = projectService.list(Wrappers.lambdaQuery(Project.class)
.eq(Project::getAreaCode, regionCode)
.eq(Project::getNewest,Boolean.TRUE)
.eq(Project::getStatus, ProjectStatusEnum.ACCEPTED.getCode()));
List<String> projectCodeList = projectList.stream().map(Project::getProjectCode).collect(Collectors.toList());
List<Integer> projectVersionList = projectList.stream().map(Project::getVersion).collect(Collectors.toList());
wrapper.in(ProjectApplication::getProjectCode,projectCodeList);
wrapper.in(ProjectApplication::getProjectVersion,projectVersionList);
wrapper.orderByDesc(ProjectApplication::getUpdateOn);
List<ProjectApplication> appList = projectApplicationService.list(wrapper);

List<ProjectApplication> applicationList = Lists.newArrayList();
// 按项目编号+应用名称+IRS关联应用名称分组,获取最新版本的应用
Map<String, List<ProjectApplication>> appMap = appList.stream().collect(Collectors.groupingBy(p -> p.getProjectCode() + p.getRelatedExistsApplication() + p.getApplicationName()));
for (Map.Entry<String, List<ProjectApplication>> entry : appMap.entrySet()) {
List<ProjectApplication> applications = entry.getValue();
Optional<ProjectApplication> max = applications.stream().max(Comparator.comparingInt(ProjectApplication::getProjectVersion));
if (max.isPresent()){
ProjectApplication application = max.get();
applicationList.add(application);
}
}
if (CollUtil.isEmpty(applicationList)){
return PageVo.empty();
}
// 获取已添加到评价计划中的应用
List<Long> applicationIdList = performanceAppraisalApplicationService.list().stream()
.map(PerformanceAppraisalApplication::getApplicationId).collect(Collectors.toList());
// 如果是编辑评价计划,保留当前计划已添加的应用
if (Objects.nonNull(appraisalId)) {
List<PerformanceAppraisalApplication> projectApplications = performanceAppraisalApplicationService.list(Wrappers.lambdaQuery(PerformanceAppraisalApplication.class)
.eq(PerformanceAppraisalApplication::getAppraisalId, appraisalId));
if (CollUtil.isNotEmpty(projectApplications)){
List<Long> appIdList = projectApplications.stream().map(PerformanceAppraisalApplication::getApplicationId).collect(Collectors.toList());
applicationIdList.removeAll(appIdList);
}
}
List<ProjectApplication> resList = applicationList.stream().filter(a -> !applicationIdList.contains(a.getId())).collect(Collectors.toList());
if (CollUtil.isEmpty(resList)){
return PageVo.empty();
}
//List<ProjectApplication> relatedAppList = Lists.newArrayList();
//// TODO 对IRS关联应用是否按照应用名称和应用code进行去重(在不同项目中,已经在IRS注册过的同一个应用只显示一个)?
//List<ProjectApplication> relatedList = resList.stream().filter(r -> StringUtils.isNotBlank(r.getRelatedExistsApplication())).collect(Collectors.toList());
//if (CollUtil.isNotEmpty(relatedList)) {
// resList.removeAll(relatedList);
// Map<String, List<ProjectApplication>> relatedAppMap = relatedList.stream()
// .collect(Collectors.groupingBy(r -> r.getRelatedExistsApplication() + r.getRelatedExistsApplicationCode()));
// for (Map.Entry<String, List<ProjectApplication>> entry : relatedAppMap.entrySet()) {
// List<ProjectApplication> value = entry.getValue();
// relatedAppList.add(value.get(0));
// }
// resList.addAll(relatedAppList);
//}
//// TODO 对初次建设应用,是否根据建设方案申报时填写的应用名称、应用类型、发布端、应用简介、等保级别、密评级别 去重?
Integer pageNumber = req.getPageNumber();
Integer pageSize = req.getPageSize();
List<ProjectApplication> resultList = resList.stream()
.skip((long) (pageNumber - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toList());

List<ProjectApplicationVO> res = resultList.stream()
.map(app -> BeanUtil.copyProperties(app, ProjectApplicationVO.class))
.collect(Collectors.toList());

return PageVo.of(res, resList.size());
}
}

+ 3
- 2
pmapi/src/main/java/com/ningdatech/pmapi/portrait/manage/TagManage.java Целия файл

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.basic.util.CollUtils;
import com.ningdatech.pmapi.common.constant.BizConst;
import com.ningdatech.pmapi.common.constant.RegionConst;
import com.ningdatech.pmapi.portrait.model.dto.TagDTO;
import com.ningdatech.pmapi.portrait.model.dto.TagToProjectDTO;
@@ -115,7 +116,7 @@ public class TagManage {
entity.setUpdateBy(user.getUsername());
tagService.saveOrUpdate(entity);

return "保存成功";
return BizConst.SAVE_SUCCESS;
}

/**
@@ -158,7 +159,7 @@ public class TagManage {
projectTagService.save(projectTag);
}

return "保存成功";
return BizConst.SAVE_SUCCESS;
}

public String removeTagToProject(TagToProjectDTO dto) {


+ 32
- 5
pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/utils/GenerateProjectCodeUtil.java Целия файл

@@ -1,12 +1,17 @@
package com.ningdatech.pmapi.projectdeclared.utils;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ningdatech.pmapi.fiscal.service.ICompanyFiscalCodeService;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.pmapi.common.constant.BizConst;
import com.ningdatech.pmapi.gov.model.dto.GovBizProjectApplyDTO;
import com.ningdatech.pmapi.gov.model.dto.GovBizProjectBaseinfoDTO;
import com.ningdatech.pmapi.gov.model.dto.GovBizProjectSaveDTO;
import com.ningdatech.pmapi.gov.model.entity.GovBizProjectApply;
import com.ningdatech.pmapi.gov.service.IGovBizProjectApplyService;
import com.ningdatech.pmapi.projectdeclared.contants.ProjectCodeContant;
import com.ningdatech.pmapi.projectlib.model.dto.ProjectDTO;
import com.ningdatech.pmapi.projectlib.model.entity.Project;
import com.ningdatech.pmapi.projectlib.model.entity.ProjectCollection;
import com.ningdatech.pmapi.projectlib.service.IProjectCollectionService;
import com.ningdatech.pmapi.projectlib.service.IProjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -21,14 +26,12 @@ import java.util.Objects;
*/
@Component
public class GenerateProjectCodeUtil {
@Autowired
private ICompanyFiscalCodeService companyFiscalCodeService;

@Autowired
private IProjectService projectService;

@Autowired
private IProjectCollectionService projectCollectionService;
private IGovBizProjectApplyService applyService;

public String generateProjectCode(ProjectDTO project){
// 获取所属行政区划代码(9位)
@@ -65,4 +68,28 @@ public class GenerateProjectCodeUtil {
// 生成20位的项目编号
return areaCode + year + projectType + serialNumber;
}

public String generateProjectCode(GovBizProjectSaveDTO dto){
// 获取所属行政区划代码(9位)
GovBizProjectBaseinfoDTO baseinfo = dto.getBaseinfo();
GovBizProjectApplyDTO apply = dto.getApply();

VUtils.isTrue(Objects.isNull(baseinfo)).throwMessage("没有项目基本信息 无法生成项目编号!");
VUtils.isTrue(Objects.isNull(apply)).throwMessage("没有项目申报信息 无法生成项目编号!");


String areaCode = baseinfo.getBaseAreaCode() + BizConst.NINE_AREA_CODE_LAST;
// 获取建设年度 (10-13)
String year = Objects.nonNull(apply.getBaseProjSetYear()) ? apply.getBaseProjSetYear()
: String.valueOf(LocalDateTime.now().getYear());
// 14-15 项目类型
String projectType = baseinfo.getBaseProjType();
// 16-20 项目序号00001
Long max = applyService.count(Wrappers.lambdaQuery(GovBizProjectApply.class)
.eq(GovBizProjectApply::getBaseProjSetYear,apply.getBaseProjSetYear()));
Long maxCurrent = max + 1;
String serialNumber = String.format(ProjectCodeContant.SHUZI_5,maxCurrent);
// 生成20位的项目编号
return areaCode + year + projectType + serialNumber;
}
}

+ 2
- 0
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/helper/ProjectHelper.java Целия файл

@@ -60,6 +60,8 @@ public class ProjectHelper {
.in(CollUtil.isNotEmpty(req.getStatusList()),Project::getStatus,req.getStatusList())
//实例code
.in(CollUtil.isNotEmpty(req.getInstCodes()),Project::getInstCode,req.getInstCodes())
//已添加评价计划的项目code
.notIn(CollUtil.isNotEmpty(req.getProjectCodes()),Project::getProjectCode,req.getProjectCodes())
.orderByDesc(Project::getCreateOn);
return query;
}


+ 3
- 2
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ApplicationManage.java Целия файл

@@ -11,6 +11,7 @@ import com.ningdatech.basic.exception.BizException;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.ApiResponse;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.pmapi.common.constant.BizConst;
import com.ningdatech.pmapi.common.util.HmacAuthUtil;
import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum;
import com.ningdatech.pmapi.projectlib.model.dto.ApplicationAppCodeSaveDTO;
@@ -79,9 +80,9 @@ public class ApplicationManage {
app.setUpdateOn(LocalDateTime.now());
app.setUpdateBy(userId);
if(applicationService.updateById(app)){
return "保存成功";
return BizConst.SAVE_SUCCESS;
}
return "保存失败";
return BizConst.SAVE_FAIL;
}

/**


+ 3
- 2
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectCollectionManage.java Целия файл

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.pmapi.common.constant.BizConst;
import com.ningdatech.pmapi.common.constant.RegionConst;
import com.ningdatech.pmapi.common.helper.RegionCacheHelper;
import com.ningdatech.pmapi.projectdeclared.utils.GenerateProjectCodeUtil;
@@ -122,9 +123,9 @@ public class ProjectCollectionManage {
projectCollection.setUpdateBy(user.getUsername());
projectCollection.setUpdateOn(LocalDateTime.now());
if(collectionService.saveOrUpdate(projectCollection)){
return "保存成功";
return BizConst.SAVE_SUCCESS;
}
return "保存失败";
return BizConst.SAVE_FAIL;
}

/**


+ 3
- 1
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/model/req/ProjectListReq.java Целия файл

@@ -2,7 +2,6 @@ package com.ningdatech.pmapi.projectlib.model.req;

import com.ningdatech.basic.model.PagePo;
import com.ningdatech.pmapi.common.enumeration.ExportOptionEnum;
import com.ningdatech.pmapi.projectlib.enumeration.ProjectLibFlagEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
@@ -96,6 +95,9 @@ public class ProjectListReq extends PagePo {
@ApiModelProperty("实例code 多个")
private List<String> instCodes;

@ApiModelProperty("项目code 多个")
private List<String> projectCodes;

@ApiModelProperty("导出选项")
private List<ExportOptionEnum> exportOptionList;
}

+ 2
- 2
pmapi/src/main/java/com/ningdatech/pmapi/safety/manage/SafetyRiskManage.java Целия файл

@@ -181,7 +181,7 @@ public class SafetyRiskManage {
}
}

return "保存成功" + sucessNum + "条";
return BizConst.SAVE_SUCCESS + sucessNum + "条";
}

public String personMonitorSave(List<PersonSafetyInfoDTO> dtos) {
@@ -219,6 +219,6 @@ public class SafetyRiskManage {
}
}

return "保存成功" + sucessNum + "条";
return BizConst.SAVE_SUCCESS + sucessNum + "条";
}
}

+ 3
- 0
pmapi/src/main/resources/application-dev.yml Целия файл

@@ -230,6 +230,9 @@ irs:
request-token-url: https://interface.ls.local/a/api/requestTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
refresh-token-url: https://interface.ls.local/a/api/refreshTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
hostname: iZbp13nwyvib53j4j1p2xoZ
project:
push-url: http://120.26.44.207:38088/syn-data-task/open/api/v1/project-receive/save
no-effective-url: http://120.26.44.207:38088/syn-data-task/open/api/v1/project-receive/not-effective

login:
phone-verify-code:


+ 3
- 0
pmapi/src/main/resources/application-pre.yml Целия файл

@@ -233,6 +233,9 @@ irs:
request-token-url: https://interface.ls.local/a/api/requestTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
refresh-token-url: https://interface.ls.local/a/api/refreshTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
hostname: iZ6mx01asxnsmennpzoxooZ
project:
push-url: http://10.53.168.41:38088/syn-data-task/open/api/v1/project-receive/save
no-effective-url: http://10.53.168.41:38088/syn-data-task/open/api/v1/project-receive/not-effective
login:
phone-verify-code:
skip: true


+ 3
- 0
pmapi/src/main/resources/application-prod.yml Целия файл

@@ -233,6 +233,9 @@ irs:
request-token-url: https://interface.ls.local/a/api/requestTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
refresh-token-url: https://interface.ls.local/a/api/refreshTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
hostname: iZ6mx01gyeodd80imxd2gbZ
project:
push-url: http://10.53.168.41:38088/syn-data-task/open/api/v1/project-receive/save
no-effective-url: http://10.53.168.41:38088/syn-data-task/open/api/v1/project-receive/not-effective
login:
phone-verify-code:
skip: true


+ 26
- 47
pmapi/src/test/resources/application-dev.yml Целия файл

@@ -41,53 +41,29 @@ spring:
hibernate:
ddl-auto: update
datasource:
type: com.alibaba.druid.pool.DruidDataSource
type: com.zaxxer.hikari.HikariDataSource
driverClassName: com.kingbase8.Driver
url: jdbc:kingbase8://120.26.44.207:54321/nd_project_management?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
username: SYSTEM
password: Ndkj1234
# 数据源
druid:
url: jdbc:kingbase8://120.26.44.207:54321/nd_project_management?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
username: SYSTEM
password: Ndkj1234
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
#mysql使用:SELECT 1 FROM DUAL
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: admin
login-password: admin
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
hikari:
# 是客户端等待连接池连接的最大毫秒数
connection-timeout: 30000
# 是允许连接在连接池中空闲的最长时间
minimum-idle: 5
# 配置最大池大小
maximum-pool-size: 20
# 是允许连接在连接池中空闲的最长时间(以毫秒为单位)
idle-timeout: 60000
# 池中连接关闭后的最长生命周期(以毫秒为单位)
max-lifetime: 600000
# 配置从池返回的连接的默认自动提交行为。默认值为true。
auto-commit: true
# 开启连接监测泄露
leak-detection-threshold: 5000
# 测试连接数据库
connection-test-query: SELECT 1
#设置上传 单个文件的大小
servlet:
multipart:
@@ -182,7 +158,7 @@ organization:
- GO_ff70e47bae684fdba0d64f4acab85661

yxt:
# wsdl-url: http://115.239.137.23:9501/ws/v1?wsdl
# wsdl-url: http://115.239.137.23:9501/ws/v1?wsdl
wsdl-url: classpath:/wsdl.xml
#账号
user-code: hzndkj
@@ -194,7 +170,7 @@ yxt:

#省局联审 请求信息
provincial:
# host: http://zj.ningdatech.com/prometheus-zhejiang_foreign
# host: http://zj.ningdatech.com/prometheus-zhejiang_foreign
host: http://223.4.72.75/prometheus-zhejiang_foreign
pushUrl: /api/v1/foreign/importantPro
detailUrl: /api/v1/foreign/importantProView
@@ -254,6 +230,9 @@ irs:
request-token-url: https://interface.ls.local/a/api/requestTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
refresh-token-url: https://interface.ls.local/a/api/refreshTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
hostname: iZbp13nwyvib53j4j1p2xoZ
project:
push-url: http://120.26.44.207:38088/syn-data-task/open/api/v1/project-receive/save
no-effective-url: http://120.26.44.207:38088/syn-data-task/open/api/v1/project-receive/not-effective

login:
phone-verify-code:


+ 26
- 46
pmapi/src/test/resources/application-pre.yml Целия файл

@@ -40,53 +40,29 @@ spring:
hibernate:
ddl-auto: update
datasource:
type: com.alibaba.druid.pool.DruidDataSource
type: com.zaxxer.hikari.HikariDataSource
driverClassName: com.kingbase8.Driver
url: jdbc:kingbase8://10.53.168.41:54321/nd_project_management?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&nullCatalogMeansCurrent=true
username: SYSTEM
password: Ndkj1234
# 数据源
druid:
url: jdbc:kingbase8://10.53.168.41:54321/nd_project_management?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&nullCatalogMeansCurrent=true
username: SYSTEM
password: Ndkj1234
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
#mysql使用:SELECT 1 FROM DUAL
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: admin
login-password: admin
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
hikari:
# 是客户端等待连接池连接的最大毫秒数
connection-timeout: 30000
# 是允许连接在连接池中空闲的最长时间
minimum-idle: 10
# 配置最大池大小
maximum-pool-size: 20
# 是允许连接在连接池中空闲的最长时间(以毫秒为单位)
idle-timeout: 60000
# 池中连接关闭后的最长生命周期(以毫秒为单位)
max-lifetime: 600000
# 配置从池返回的连接的默认自动提交行为。默认值为true。
auto-commit: true
# 开启连接监测泄露
leak-detection-threshold: 5000
# 测试连接数据库
connection-test-query: SELECT 1
#设置上传 单个文件的大小
servlet:
multipart:
@@ -145,7 +121,7 @@ flowable:
async-executor-activate: true
#关闭一些不需要的功能服务
rest-api-enabled: false
# database-schema-update: false
# database-schema-update: false
idm:
enabled: false
common:
@@ -257,6 +233,10 @@ irs:
request-token-url: https://interface.ls.local/a/api/requestTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
refresh-token-url: https://interface.ls.local/a/api/refreshTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
hostname: iZ6mx01asxnsmennpzoxooZ
project:
push-url: http://10.53.168.41:38088/syn-data-task/open/api/v1/project-receive/save
no-effective-url: http://10.53.168.41:38088/syn-data-task/open/api/v1/project-receive/not-effective
login:
phone-verify-code:
skip: true
url: http://60.188.225.145:8080/login

+ 34
- 49
pmapi/src/test/resources/application-prod.yml Целия файл

@@ -13,9 +13,9 @@ spring:
namespace: "spring:session"
redis:
timeout: 5000
host: 47.98.125.47
port: 26379
database: 4
host: localhost
port: 6379
database: 0
password: Ndkj1234
jedis:
pool:
@@ -40,53 +40,29 @@ spring:
hibernate:
ddl-auto: update
datasource:
type: com.alibaba.druid.pool.DruidDataSource
type: com.zaxxer.hikari.HikariDataSource
driverClassName: com.kingbase8.Driver
url: jdbc:kingbase8://10.53.172.221:54321/nd_project_management?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&nullCatalogMeansCurrent=true
username: SYSTEM
password: Ndkj1234
# 数据源
druid:
url: jdbc:kingbase8://10.53.172.221:54321/nd_project_management?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&nullCatalogMeansCurrent=true
username: SYSTEM
password: Ndkj1234
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
#mysql使用:SELECT 1 FROM DUAL
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: admin
login-password: admin
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
hikari:
# 是客户端等待连接池连接的最大毫秒数
connection-timeout: 30000
# 是允许连接在连接池中空闲的最长时间
minimum-idle: 10
# 配置最大池大小
maximum-pool-size: 20
# 是允许连接在连接池中空闲的最长时间(以毫秒为单位)
idle-timeout: 60000
# 池中连接关闭后的最长生命周期(以毫秒为单位)
max-lifetime: 600000
# 配置从池返回的连接的默认自动提交行为。默认值为true。
auto-commit: true
# 开启连接监测泄露
leak-detection-threshold: 5000
# 测试连接数据库
connection-test-query: SELECT 1
#设置上传 单个文件的大小
servlet:
multipart:
@@ -145,7 +121,7 @@ flowable:
async-executor-activate: true
#关闭一些不需要的功能服务
rest-api-enabled: false
# database-schema-update: false
# database-schema-update: false
idm:
enabled: false
common:
@@ -209,6 +185,11 @@ provincial:
#天印服务器接口信息
irs:
is-search-app: true
digital-resource-indicators:
url: https://interface.zjzwfw.gov.cn/gateway/api/proxy/001003001029/dataSharing/99E2bic31KdXzaa7.htm
interfaceName: 99E2bic31KdXzaa7
app-key: A331101453557202109017383
app-secret: 496f0f2a19994f76b4fd9dae087366c7
seal-platform:
project-id: 330001110
project-secret: 70e512d40c8f440484db4acab181570a
@@ -252,6 +233,10 @@ irs:
request-token-url: https://interface.ls.local/a/api/requestTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
refresh-token-url: https://interface.ls.local/a/api/refreshTokenKey?appKey={appKey}&requestTime={requestTime}&sign={sign}
hostname: iZ6mx01gyeodd80imxd2gbZ
project:
push-url: http://10.53.168.41:38088/syn-data-task/open/api/v1/project-receive/save
no-effective-url: http://10.53.168.41:38088/syn-data-task/open/api/v1/project-receive/not-effective
login:
phone-verify-code:
skip: true
url: http://60.188.225.145/login

+ 1
- 0
pom.xml Целия файл

@@ -209,5 +209,6 @@
<modules>
<module>pmapi</module>
<module>ningda-generator</module>
<module>syn-data-task</module>
</modules>
</project>

+ 192
- 0
syn-data-task/pom.xml Целия файл

@@ -0,0 +1,192 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>project-management</artifactId>
<groupId>com.ningdatech</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>syn-data-task</artifactId>

<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.5</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- mybatis plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--实现springboot的热加载-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>com.ningdatech</groupId>
<artifactId>nd-swagger2-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.ningdatech</groupId>
<artifactId>nd-basic</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<artifactId>spring-boot-starter-security</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
<exclusion>
<artifactId>spring-security-config</artifactId>
<groupId>org.springframework.security</groupId>
</exclusion>
<exclusion>
<artifactId>spring-security-web</artifactId>
<groupId>org.springframework.security</groupId>
</exclusion>
<exclusion>
<artifactId>spring-security-core</artifactId>
<groupId>org.springframework.security</groupId>
</exclusion>
<exclusion>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

<!-- 打包 -->
<!--配置环境的profile-->
<profiles>
<profile>
<id>dev</id>
<properties>
<!--使用${environment}获取值-->
<environment>dev</environment>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<environment>test</environment>
</properties>
</profile>
<profile>
<id>pre</id>
<properties>
<environment>pre</environment>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<environment>prod</environment>
</properties>
</profile>
</profiles>

<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<targetPath>BOOT-INF/classes/</targetPath>
</resource>
</resources>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.8</version>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

+ 33
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/SynDataTaskApp.java Целия файл

@@ -0,0 +1,33 @@
package com.ningdatech.syndataapi;


import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
* @author CMM
* @since 2023/08/22 18:14
*/
@SpringBootApplication
@EnableAsync
@MapperScan(SynDataTaskApp.MAPPER_PACKAGES)
@EnableScheduling
@EnableTransactionManagement
@EnableAspectJAutoProxy(exposeProxy = true)
@ComponentScan(basePackages = {"com.ningdatech.syndataapi.**"})
public class SynDataTaskApp {

protected static final String MAPPER_PACKAGES = "com.ningdatech.syndataapi.**.mapper";

public static void main(String[] args) {
SpringApplication.run(SynDataTaskApp.class, args);
}
}

+ 101
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/common/constant/BizConst.java Целия файл

@@ -0,0 +1,101 @@
package com.ningdatech.syndataapi.common.constant;

import com.ningdatech.basic.model.ApiResponse;

import java.math.BigDecimal;

/**
* <p>
* 业务常量
* </p>
*
* @author WendyYang
* @since 13:42 2022/12/1
*/
public interface BizConst {

/**
* SQL查询一条
*/
String LIMIT_1 = "limit 1";

String COOKIE_KEY = "ND_PROJECT_MANAGEMENT_JSESSION";

/**
* 一小时秒数
**/
BigDecimal SECONDS_BY_HOUR = new BigDecimal(60 * 60);

/**
* 十分钟的毫秒数
*/
long MILLS_10_MIN = 1000L * 60 * 10;

/**
* 中国行政区划编码
*/
long ROOT_REGION_CODE = 100000L;

/**
* 一级行政区划数量
*/
int NUM_PROVINCE = 34;

/**
* 默认的父id
*/
long PARENT_ID = 0L;

/**
* 默认树层级
*/
int TREE_GRADE = 0;

/**
* 默认的排序
*/
int SORT_VALUE = 0;

/**
* 浙江省的region_id
*/
long ZJ_REGION_CODE = 330000L;
String NINE_AREA_CODE_LAST = "000";

/**
* 省/直辖市 level
*/
int GOV_L1 = 1;

/**
* 市 level
*/
int GOV_L2 = 2;

/**
* 区/县 level
*/
int GOV_L3 = 3;

/**
* 密码正则:长度8-20位且至少包含大写字母、小写字母、数字或特殊符号中的任意三种
*/
String REGEX_PASS = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{8,20}$";

ApiResponse<Void> UNAUTHENTICATED = ApiResponse.of(401, "用户未登录", null);

int MAX_EXPORT_COUNT = 5000;

String RESPONSE_KEY_DATA = "data";
String ORG_NAME = "organizationName";
String ORG_CODE = "organizationCode";

String DEV = "dev";
String PRE = "pre";
String PROD = "prod";

String SAVE_SUCCESS = "保存成功";
String OP_SUCCESS = "操作成功";
String SAVE_FAIL = "保存失败";
String NOT_EFFECTIVE = "1";
}

+ 40
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/open/controller/ProjectReceiveController.java Целия файл

@@ -0,0 +1,40 @@
package com.ningdatech.syndataapi.open.controller;

import com.ningdatech.basic.model.ApiResponse;
import com.ningdatech.syndataapi.open.manage.ProjectReceiveManage;
import com.ningdatech.syndataapi.scheduler.model.dto.ProjectBaseInfoDTO;
import com.ningdatech.syndataapi.scheduler.model.dto.ProjectSaveDTO;
import com.ningdatech.syndataapi.scheduler.model.entity.ProjectBaseInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;

/**
* @Classname ProjectCollectionController
* @Description
* @Date 2023/6/25 9:11
* @Author PoffyZhang
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "项目归集控制器")
@RequestMapping("/open/api/v1/project-receive")
public class ProjectReceiveController {

private final ProjectReceiveManage receiveManage;

@PostMapping("/save")
@ApiOperation("项目归集接收")
public ApiResponse<String> save(@Valid @RequestBody ProjectSaveDTO dto) {
return ApiResponse.ofSuccess(receiveManage.save(dto));
}

@PostMapping("/not-effective")
@ApiOperation("项目归集置为无效")
public ApiResponse<String> notEffective(@Valid @RequestBody ProjectBaseInfoDTO baseinfo) {
return ApiResponse.ofSuccess(receiveManage.notEffective(baseinfo));
}
}

+ 168
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/open/manage/ProjectReceiveManage.java Целия файл

@@ -0,0 +1,168 @@
package com.ningdatech.syndataapi.open.manage;

import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.syndataapi.common.constant.BizConst;
import com.ningdatech.syndataapi.scheduler.model.dto.ProjectBaseInfoDTO;
import com.ningdatech.syndataapi.scheduler.model.dto.ProjectSaveDTO;
import com.ningdatech.syndataapi.scheduler.model.entity.*;
import com.ningdatech.syndataapi.scheduler.service.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.Objects;

/**
* @Classname ProjectReceiveManage
* @Description
* @Date 2023/8/25 9:11
* @Author PoffyZhang
*/
@Component
@RequiredArgsConstructor
@Slf4j
public class ProjectReceiveManage {

private final IProjectBaseInfoService baseInfoService;

private final IProjectApplyService applyService;

private final IProjectApproveService approveService;

private final IProjectCimplementService cimplementService;

private final IProjectMimplementService mimplementService;

private final IProjectProcureService procureService;

/**
* 接收保存 项目
* @param dto
* @return
*/
public String save(ProjectSaveDTO dto) {

//1.保存项目基本信息
ProjectBaseInfo baseInfo = dto.getBaseinfo();
String baseProjId = baseInfo.getBaseProjId();
VUtils.isTrue(StringUtils.isBlank(baseProjId))
.throwMessage("项目编号不能为空!");

ProjectBaseInfo oldBaseInfo = baseInfoService.getOne(Wrappers.lambdaQuery(ProjectBaseInfo.class)
.eq(ProjectBaseInfo::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));
ProjectBaseInfo saveBase = BeanUtil.copyProperties(baseInfo,ProjectBaseInfo.class);
if(Objects.isNull(oldBaseInfo)){
saveBase.setTongTime(LocalDateTime.now());
}
saveBase.setBizTime(LocalDateTime.now());
baseInfoService.saveOrUpdate(saveBase);

// 2.保存 申报信息
ProjectApply apply = dto.getApply();

ProjectApply oldApply = applyService.getOne(Wrappers.lambdaQuery(ProjectApply.class)
.eq(ProjectApply::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

ProjectApply saveApply = BeanUtil.copyProperties(apply,ProjectApply.class);
saveApply.setBaseProjId(baseProjId);
if(Objects.isNull(oldApply)){
saveApply.setTongTime(LocalDateTime.now());
}
saveApply.setBizTime(LocalDateTime.now());
applyService.saveOrUpdate(saveApply);


// 3.保存 审批信息
ProjectApprove approve = dto.getApprove();

ProjectApprove oldApprove = approveService.getOne(Wrappers.lambdaQuery(ProjectApprove.class)
.eq(ProjectApprove::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

ProjectApprove saveApprove = BeanUtil.copyProperties(approve,ProjectApprove.class);
saveApprove.setBaseProjId(baseProjId);
if(Objects.isNull(oldApprove)){
saveApprove.setTongTime(LocalDateTime.now());
}
saveApprove.setBizTime(LocalDateTime.now());
approveService.saveOrUpdate(saveApprove);


// 4.保存 建设项目 实施信息
ProjectCimplement cimplement = dto.getCimplement();
if(Objects.nonNull(cimplement)){
ProjectCimplement oldCimplement = cimplementService.getOne(Wrappers.lambdaQuery(ProjectCimplement.class)
.eq(ProjectCimplement::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

ProjectCimplement saveCimplement = BeanUtil.copyProperties(cimplement,ProjectCimplement.class);
saveCimplement.setBaseProjId(baseProjId);
if(Objects.isNull(oldCimplement)){
saveCimplement.setTongTime(LocalDateTime.now());
}
saveCimplement.setBizTime(LocalDateTime.now());
cimplementService.saveOrUpdate(saveCimplement);
}

// 5.保存 运维项目 实施信息
ProjectMimplement mimplement = dto.getMimplement();
if(Objects.nonNull(mimplement)){
ProjectMimplement oldMimplement = mimplementService.getOne(Wrappers.lambdaQuery(ProjectMimplement.class)
.eq(ProjectMimplement::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

ProjectMimplement saveMimplement = BeanUtil.copyProperties(mimplement,ProjectMimplement.class);
saveMimplement.setBaseProjId(baseProjId);
if(Objects.isNull(oldMimplement)){
saveMimplement.setTongTime(LocalDateTime.now());
}
saveMimplement.setBizTime(LocalDateTime.now());
mimplementService.saveOrUpdate(saveMimplement);
}

// 6.保存 采购信息
ProjectProcure procure = dto.getProcure();
if(Objects.nonNull(procure)){
ProjectProcure oldProcure = procureService.getOne(Wrappers.lambdaQuery(ProjectProcure.class)
.eq(ProjectProcure::getBaseProjId, baseProjId)
.last(BizConst.LIMIT_1));

ProjectProcure saveProcure = BeanUtil.copyProperties(procure,ProjectProcure.class);
saveProcure.setBaseProjId(baseProjId);
if(Objects.isNull(oldProcure)){
saveProcure.setTongTime(LocalDateTime.now());
}
saveProcure.setBizTime(LocalDateTime.now());
procureService.saveOrUpdate(saveProcure);
}

return BizConst.SAVE_SUCCESS;
}

/**
* 置为无效
* @param dto
* @return
*/
public String notEffective(ProjectBaseInfoDTO dto) {
ProjectBaseInfo oldBaseInfo = baseInfoService.getOne(Wrappers.lambdaQuery(ProjectBaseInfo.class)
.eq(ProjectBaseInfo::getBaseProjId, dto.getBaseProjId())
.last(BizConst.LIMIT_1));

ProjectBaseInfo saveBaseinfo = BeanUtil.copyProperties(dto,ProjectBaseInfo.class);
saveBaseinfo.setIsEffective(BizConst.NOT_EFFECTIVE);
if(Objects.isNull(oldBaseInfo)){
saveBaseinfo.setTongTime(LocalDateTime.now());
}
saveBaseinfo.setBizTime(LocalDateTime.now());
baseInfoService.saveOrUpdate(saveBaseinfo);

return BizConst.OP_SUCCESS;
}
}

+ 16
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectApplyMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.syndataapi.scheduler.mapper;

import com.ningdatech.syndataapi.scheduler.model.entity.ProjectApply;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* <p>
* 项目申报信息 Mapper 接口
* </p>
*
* @author CMM
* @since 2023-08-22
*/
public interface ProjectApplyMapper extends BaseMapper<ProjectApply> {

}

+ 5
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectApplyMapper.xml Целия файл

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ningdatech.syndataapi.scheduler.mapper.ProjectApplyMapper">

</mapper>

+ 16
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectApproveMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.syndataapi.scheduler.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.syndataapi.scheduler.model.entity.ProjectApprove;

/**
* <p>
* 项目立项评审信息 Mapper 接口
* </p>
*
* @author CMM
* @since 2023-08-22
*/
public interface ProjectApproveMapper extends BaseMapper<ProjectApprove> {

}

+ 5
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectApproveMapper.xml Целия файл

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ningdatech.syndataapi.scheduler.mapper.ProjectApproveMapper">

</mapper>

+ 16
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectBaseInfoMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.syndataapi.scheduler.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.syndataapi.scheduler.model.entity.ProjectBaseInfo;

/**
* <p>
* 项目基本信息 Mapper 接口
* </p>
*
* @author CMM
* @since 2023-08-22
*/
public interface ProjectBaseInfoMapper extends BaseMapper<ProjectBaseInfo> {

}

+ 5
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectBaseInfoMapper.xml Целия файл

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ningdatech.syndataapi.scheduler.mapper.ProjectBaseInfoMapper">

</mapper>

+ 16
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectCimplementMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.syndataapi.scheduler.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.syndataapi.scheduler.model.entity.ProjectCimplement;

/**
* <p>
* 建设项目实施信息 Mapper 接口
* </p>
*
* @author CMM
* @since 2023-08-22
*/
public interface ProjectCimplementMapper extends BaseMapper<ProjectCimplement> {

}

+ 5
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectCimplementMapper.xml Целия файл

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ningdatech.syndataapi.scheduler.mapper.ProjectCimplementMapper">

</mapper>

+ 16
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectMimplementMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.syndataapi.scheduler.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.syndataapi.scheduler.model.entity.ProjectMimplement;

/**
* <p>
* 运维项目实施信息 Mapper 接口
* </p>
*
* @author CMM
* @since 2023-08-22
*/
public interface ProjectMimplementMapper extends BaseMapper<ProjectMimplement> {

}

+ 5
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectMimplementMapper.xml Целия файл

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ningdatech.syndataapi.scheduler.mapper.ProjectMimplementMapper">

</mapper>

+ 16
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectProcureMapper.java Целия файл

@@ -0,0 +1,16 @@
package com.ningdatech.syndataapi.scheduler.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ningdatech.syndataapi.scheduler.model.entity.ProjectProcure;

/**
* <p>
* 项目采购信息 Mapper 接口
* </p>
*
* @author CMM
* @since 2023-08-22
*/
public interface ProjectProcureMapper extends BaseMapper<ProjectProcure> {

}

+ 5
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/mapper/ProjectProcureMapper.xml Целия файл

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ningdatech.syndataapi.scheduler.mapper.ProjectProcureMapper">

</mapper>

+ 103
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/dto/ProjectBaseInfoDTO.java Целия файл

@@ -0,0 +1,103 @@
package com.ningdatech.syndataapi.scheduler.model.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
* <p>
* 项目基本信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@ApiModel(value = "SzlsDaBiz331100ProjectBaseinfo对象", description = "项目基本信息")
public class ProjectBaseInfoDTO implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目代码")
@NotBlank(message = "项目编号不能为空")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("所属区划")
private String baseAreaName;

@ApiModelProperty("所属区划编码")
private String baseAreaCode;

@ApiModelProperty("是否涉密")
private String baseProjIsConfidentiality;

@ApiModelProperty("项目类型")
private String baseProjType;

@ApiModelProperty("内容类别")
private String baseConstructionType;

@ApiModelProperty("项目状态")
private String baseProjSetProg;

@ApiModelProperty("信息是否有效")
private String isEffective;

@ApiModelProperty("上级主管单位")
private String baseProvManDeprt;

@ApiModelProperty("上级主管单位浙政钉ID")
private String baseProvManDeprtDing;

@ApiModelProperty("本级主管单位")
private String baseManDeprt;

@ApiModelProperty("本级主管单位浙政钉ID")
private String baseManDeprtDing;

@ApiModelProperty("本级主管单位统一社会信用代码")
private String baseManDepartUsci;

@ApiModelProperty("建设单位(申报单位)")
private String baseBuildDeprt;

@ApiModelProperty("建设单位浙政钉ID")
private String baseBuildDeprtDing;

@ApiModelProperty("建设单位统一社会信用代码")
private String baseBuildDepartUsci;

@ApiModelProperty("项目负责人")
private String baseProjPrincipal;

@ApiModelProperty("项目负责人手机号")
private String baseProjPrincipalCall;

@ApiModelProperty("项目联系人")
private String baseProjContacts;

@ApiModelProperty("项目联系人手机号")
private String baseProjContactsCall;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;
}

+ 33
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/dto/ProjectSaveDTO.java Целия файл

@@ -0,0 +1,33 @@
package com.ningdatech.syndataapi.scheduler.model.dto;

import com.ningdatech.syndataapi.scheduler.model.entity.*;
import io.swagger.annotations.ApiModel;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
* @Classname ProjectSaveDTO
* @Description
* @Date 2023/8/25 9:45
* @Author PoffyZhang
*/
@Data
@ApiModel(value = "SProjectSaveDTO", description = "项目保存")
public class ProjectSaveDTO {

@NotNull(message = "项目基本信息不能为空")
private ProjectBaseInfo baseinfo;

@NotNull(message = "项目申报信息不能为空")
private ProjectApply apply;

@NotNull(message = "项目审批信息不能为空")
private ProjectApprove approve;

private ProjectCimplement cimplement;

private ProjectMimplement mimplement;

private ProjectProcure procure;
}

+ 138
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/entity/ProjectApply.java Целия файл

@@ -0,0 +1,138 @@
package com.ningdatech.syndataapi.scheduler.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* <p>
* 项目申报信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_apply")
@ApiModel(value = "SzlsDaBiz331100ProjectApply对象", description = "项目申报信息")
public class ProjectApply implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("财政项目代码")
private String setProjCodeFinan;

@ApiModelProperty("历年项目名称")
private String baseHistorProjName;

@ApiModelProperty("历年项目代码")
private String baseHistorProjId;

@ApiModelProperty("关联IRS应用名称")
private String baseProjSys;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("一本账重大应用名称")
private String baseAccountAppName;

@ApiModelProperty("“领域大脑”一本账名称")
private String baseBrainName;

@ApiModelProperty("单位核心业务名称")
private String baseCoreBusiness;

@ApiModelProperty("单位核心业务编码")
private String baseCoreBusinessCode;

@ApiModelProperty("项目起始时间")
private String baseProjStartTime;

@ApiModelProperty("项目终止时间")
private String baseProjEndTime;

@ApiModelProperty("项目期限")
private String baseProjDuration;

@ApiModelProperty("预算年度")
private String baseProjSetYear;

@ApiModelProperty("预算来源")
private String baseProjAmountOri;

@ApiModelProperty("预算来源说明")
private String baseBasisAmountOri;

@ApiModelProperty("项目总投资")
private String baseProjTotalAmount;

@ApiModelProperty("申报年度预算")
private String baseProjDeclAmount;

@ApiModelProperty("建设层级")
private String baseProjConsClass;

@ApiModelProperty("贯通层级")
private String baseLowestLevel;

@ApiModelProperty("立项依据")
private String baseProjBasis;

@ApiModelProperty("立项依据说明")
private String baseBasisEstablish;

@ApiModelProperty("立项依据证明材料")
private String baseProjBasisFile;

@ApiModelProperty("项目概述")
private String baseProjIntro;

@ApiModelProperty("项目内容与预期成效")
private String beseExpectedResults;

@ApiModelProperty("可行性研究报告")
private String baseResearchReportFile;

@ApiModelProperty("项目申报书")
private String baseProjApplyFile;

@ApiModelProperty("运维方案")
private String baseOperatMaintenFile;

@ApiModelProperty("其他附件")
private String baseProjOtherFile;

@ApiModelProperty("备注")
private String baseProjRemark;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

+ 90
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/entity/ProjectApprove.java Целия файл

@@ -0,0 +1,90 @@
package com.ningdatech.syndataapi.scheduler.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* <p>
* 项目立项评审信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_approve")
@ApiModel(value = "SzlsDaBiz331100ProjectApprove对象", description = "项目立项评审信息")
public class ProjectApprove implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("财政项目代码")
private String setProjCodeFinan;

@ApiModelProperty("评审结果")
private String baseReviewResults;

@ApiModelProperty("评审意见")
private String baseReviewOpinion;

@ApiModelProperty("评审意见附件")
private String baseReviewCommentsFile;

@ApiModelProperty("建议总投资")
private String baseExpertTotalMoney;

@ApiModelProperty("建议年度预算")
private String baseExpertYearMoney;

@ApiModelProperty("立项批复文件")
private String approvalFile;

@ApiModelProperty("建议批复总投资")
private String baseInitialReviewTotalMoney;

@ApiModelProperty("建议批复年度预算")
private String baseProjReplyAmount;

@ApiModelProperty("等保定级")
private String equalProtectionLevel;

@ApiModelProperty("初步设计方案")
private String preliminaryDesignScheme;

@ApiModelProperty("初步设计方案批复函")
private String preliminaryDesignFile;

@ApiModelProperty("年度预算下达金额")
private String releaseYearMoney;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

+ 105
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/entity/ProjectBaseInfo.java Целия файл

@@ -0,0 +1,105 @@
package com.ningdatech.syndataapi.scheduler.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* <p>
* 项目基本信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_baseinfo")
@ApiModel(value = "SzlsDaBiz331100ProjectBaseinfo对象", description = "项目基本信息")
public class ProjectBaseInfo implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("所属区划")
private String baseAreaName;

@ApiModelProperty("所属区划编码")
private String baseAreaCode;

@ApiModelProperty("是否涉密")
private String baseProjIsConfidentiality;

@ApiModelProperty("项目类型")
private String baseProjType;

@ApiModelProperty("内容类别")
private String baseConstructionType;

@ApiModelProperty("项目状态")
private String baseProjSetProg;

@ApiModelProperty("信息是否有效")
private String isEffective;

@ApiModelProperty("上级主管单位")
private String baseProvManDeprt;

@ApiModelProperty("上级主管单位浙政钉ID")
private String baseProvManDeprtDing;

@ApiModelProperty("本级主管单位")
private String baseManDeprt;

@ApiModelProperty("本级主管单位浙政钉ID")
private String baseManDeprtDing;

@ApiModelProperty("本级主管单位统一社会信用代码")
private String baseManDepartUsci;

@ApiModelProperty("建设单位(申报单位)")
private String baseBuildDeprt;

@ApiModelProperty("建设单位浙政钉ID")
private String baseBuildDeprtDing;

@ApiModelProperty("建设单位统一社会信用代码")
private String baseBuildDepartUsci;

@ApiModelProperty("项目负责人")
private String baseProjPrincipal;

@ApiModelProperty("项目负责人手机号")
private String baseProjPrincipalCall;

@ApiModelProperty("项目联系人")
private String baseProjContacts;

@ApiModelProperty("项目联系人手机号")
private String baseProjContactsCall;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

+ 108
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/entity/ProjectCimplement.java Целия файл

@@ -0,0 +1,108 @@
package com.ningdatech.syndataapi.scheduler.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* <p>
* 建设项目实施信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_cimplement")
@ApiModel(value = "SzlsDaBiz331100ProjectCimplement对象", description = "建设项目实施信息")
public class ProjectCimplement implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("标段代码")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("初验意见")
private String baseInitialOpinionFile;

@ApiModelProperty("信息安全等级保护测评报告")
private String baseInforLevelFile;

@ApiModelProperty("商业密码应用评估报告")
private String basePasswAssessFile;

@ApiModelProperty("第三方验收测试报告")
private String baseThirdAcceptFile;

@ApiModelProperty("建设核查表")
private String baseCheckFile;

@ApiModelProperty("财务审计报告")
private String baseFinanlAuditFile;

@ApiModelProperty("用户使用报告")
private String baseUserConsFile;

@ApiModelProperty("监理总结报告")
private String baseEstaSummFile;

@ApiModelProperty("IRS应用试运行报告")
private String baseIrsTestRunFile;

@ApiModelProperty("项目总结报告")
private String baseSummReportFile;

@ApiModelProperty("是否完成日志数据归集")
private String baseLogAggregation;

@ApiModelProperty("实际成效指标")
private String baseBusinessMetrics;

@ApiModelProperty("终验意见")
private String baseFinalExpertOpinionFile;

@ApiModelProperty("项目延期申请表")
private String baseEngineerPostpoFile;

@ApiModelProperty("变更申请单")
private String baseChangeFormFile;

@ApiModelProperty("变更批复文件")
private String baseChanFile;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

+ 96
- 0
syn-data-task/src/main/java/com/ningdatech/syndataapi/scheduler/model/entity/ProjectMimplement.java Целия файл

@@ -0,0 +1,96 @@
package com.ningdatech.syndataapi.scheduler.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
* <p>
* 运维项目实施信息
* </p>
*
* @author CMM
* @since 2023-08-22
*/
@Data
@TableName("szls_da_biz_331100_project_mimplement")
@ApiModel(value = "SzlsDaBiz331100ProjectMimplement对象", description = "运维项目实施信息")
public class ProjectMimplement implements Serializable {

private static final long serialVersionUID = 1L;

@ApiModelProperty("标段代码")
private String baseBidCode;

@ApiModelProperty("标段名称")
private String baseBidName;

@ApiModelProperty("项目代码")
private String baseProjId;

@ApiModelProperty("项目名称")
private String baseProjName;

@ApiModelProperty("发改项目代码")
private String baseDevelopCode;

@ApiModelProperty("关联IRS应用编码")
private String baseProjSysCode;

@ApiModelProperty("信息安全等级保护测评报告")
private String baseInforLevelFile;

@ApiModelProperty("商业密码应用评估报告")
private String basePasswAssessFile;

@ApiModelProperty("第三方验收测试报告")
private String baseThirdAcceptFile;

@ApiModelProperty("用户使用报告")
private String baseUserConsFile;

@ApiModelProperty("监理总结报告")
private String baseEstaSummFile;

@ApiModelProperty("运维总结报告")
private String baseOperatMaintenSummFile;

@ApiModelProperty("是否完成日志数据归集")
private String baseLogAggregation;

@ApiModelProperty("实际成效指标")
private String baseBusinessMetrics;

@ApiModelProperty("终验意见")
private String baseFinalExpertOpinionFile;

@ApiModelProperty("项目延期申请表")
private String baseEngineerPostpoFile;

@ApiModelProperty("变更报告")
private String baseEngineerAlterFile;

@ApiModelProperty("变更批复文件")
private String baseChanFile;

@ApiModelProperty("数据来源")
private String areaCode;

@ApiModelProperty("出生产库时间")
private LocalDateTime bizTime;

@ApiModelProperty("操作标记")
private String op;

@ApiModelProperty("数据入库时间")
private LocalDateTime tongTime;

@ApiModelProperty("发送端自增列")
@TableId(value = "tongID", type = IdType.AUTO)
private Integer tongID;
}

Някои файлове не бяха показани, защото твърде много файлове са промени

Loading…
Отказ
Запис