@@ -1,4 +1,4 @@ | |||||
package com.hz.pm.api.projectdeclared.contants; | |||||
package com.hz.pm.api.projectdeclared.contant; | |||||
import com.google.common.collect.Lists; | import com.google.common.collect.Lists; | ||||
@@ -1,4 +1,4 @@ | |||||
package com.hz.pm.api.projectdeclared.contants; | |||||
package com.hz.pm.api.projectdeclared.contant; | |||||
/** | /** | ||||
* @Classname ProjectCodeContant | * @Classname ProjectCodeContant | ||||
@@ -6,7 +6,7 @@ package com.hz.pm.api.projectdeclared.contants; | |||||
* @Date 2023/8/10 15:20 | * @Date 2023/8/10 15:20 | ||||
* @Author PoffyZhang | * @Author PoffyZhang | ||||
*/ | */ | ||||
public interface ProjectCodeContant { | |||||
public interface ProjectCodeCont { | |||||
String REGION_LAST_3 = "000"; | String REGION_LAST_3 = "000"; | ||||
@@ -1,9 +1,9 @@ | |||||
package com.hz.pm.api.projectdeclared.controller; | package com.hz.pm.api.projectdeclared.controller; | ||||
import com.hz.pm.api.projectdeclared.model.dto.OperationReq; | |||||
import com.ningdatech.log.annotation.WebLog; | |||||
import com.hz.pm.api.projectdeclared.manage.OperationManage; | import com.hz.pm.api.projectdeclared.manage.OperationManage; | ||||
import com.hz.pm.api.projectdeclared.model.dto.OperationReq; | |||||
import com.hz.pm.api.projectdeclared.model.vo.OperationVO; | import com.hz.pm.api.projectdeclared.model.vo.OperationVO; | ||||
import com.ningdatech.log.annotation.WebLog; | |||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
@@ -14,26 +14,34 @@ import org.springframework.web.bind.annotation.*; | |||||
import java.util.List; | import java.util.List; | ||||
/** | /** | ||||
* @Classname OperationController | |||||
* @Description 申报项目-实施 | |||||
* @Date 2023/7/31 09:29 | |||||
* @Author PoffyZhang | |||||
* <p> | |||||
* OperationController | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 10:02 2024/3/29 | |||||
*/ | */ | ||||
@Slf4j | @Slf4j | ||||
@Validated | @Validated | ||||
@RestController | @RestController | ||||
@Api("实施管理") | |||||
@RequestMapping("/api/v1/declared/operation") | @RequestMapping("/api/v1/declared/operation") | ||||
@Api(value = "OperationController", tags = "申报管理-实施") | |||||
@RequiredArgsConstructor | @RequiredArgsConstructor | ||||
public class OperationController { | public class OperationController { | ||||
private final OperationManage operationManage; | private final OperationManage operationManage; | ||||
@ApiOperation(value = "实施详情", notes = "实施详情") | |||||
@ApiOperation("项目实施详情") | |||||
@GetMapping("/detail/{projectId}") | @GetMapping("/detail/{projectId}") | ||||
public List<OperationVO> detail(@PathVariable Long projectId) { | |||||
public List<OperationVO> detailByProjectId(@PathVariable Long projectId) { | |||||
return operationManage.detail(projectId); | return operationManage.detail(projectId); | ||||
} | } | ||||
@ApiOperation("标段实施详情") | |||||
@GetMapping("/detailByBidId/{bidId}") | |||||
public OperationVO detailByBidId(@PathVariable Long bidId) { | |||||
return operationManage.detailByBidId(bidId); | |||||
} | |||||
@PostMapping("/push-operation") | @PostMapping("/push-operation") | ||||
@ApiOperation("填写实施计划") | @ApiOperation("填写实施计划") | ||||
@WebLog("填写实施计划") | @WebLog("填写实施计划") | ||||
@@ -23,7 +23,7 @@ import com.hz.pm.api.common.util.ExcelExportStyle; | |||||
import com.hz.pm.api.external.model.enumeration.MhUnitTypeEnum; | import com.hz.pm.api.external.model.enumeration.MhUnitTypeEnum; | ||||
import com.hz.pm.api.gov.manage.GovProjectCollectionManage; | import com.hz.pm.api.gov.manage.GovProjectCollectionManage; | ||||
import com.hz.pm.api.irs.manage.ProjectIrsManage; | import com.hz.pm.api.irs.manage.ProjectIrsManage; | ||||
import com.hz.pm.api.projectdeclared.contants.DeclaredProjectConst; | |||||
import com.hz.pm.api.projectdeclared.contant.DeclaredProjectConst; | |||||
import com.hz.pm.api.projectdeclared.model.dto.*; | import com.hz.pm.api.projectdeclared.model.dto.*; | ||||
import com.hz.pm.api.projectdeclared.model.entity.ProjectDraft; | import com.hz.pm.api.projectdeclared.model.entity.ProjectDraft; | ||||
import com.hz.pm.api.projectdeclared.model.enumerization.ProjectDraftTypeEnum; | import com.hz.pm.api.projectdeclared.model.enumerization.ProjectDraftTypeEnum; | ||||
@@ -61,7 +61,6 @@ import com.wflow.exception.BusinessException; | |||||
import com.wflow.workflow.bean.dto.OrgInfoDTO; | import com.wflow.workflow.bean.dto.OrgInfoDTO; | ||||
import com.wflow.workflow.bean.vo.ProcessStartParamsVo; | import com.wflow.workflow.bean.vo.ProcessStartParamsVo; | ||||
import com.wflow.workflow.service.ProcessInstanceService; | import com.wflow.workflow.service.ProcessInstanceService; | ||||
import com.wflow.workflow.service.ProcessModelService; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
@@ -1,6 +1,7 @@ | |||||
package com.hz.pm.api.projectdeclared.manage; | package com.hz.pm.api.projectdeclared.manage; | ||||
import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.Assert; | import com.baomidou.mybatisplus.core.toolkit.Assert; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.hz.pm.api.common.statemachine.util.StateMachineUtil; | import com.hz.pm.api.common.statemachine.util.StateMachineUtil; | ||||
@@ -64,6 +65,16 @@ public class OperationManage { | |||||
return CollUtils.convert(operations, w -> BeanUtil.copyProperties(w, OperationVO.class)); | return CollUtils.convert(operations, w -> BeanUtil.copyProperties(w, OperationVO.class)); | ||||
} | } | ||||
/** | |||||
* 获取标段实施详情 | |||||
*/ | |||||
public OperationVO detailByBidId(Long bidId) { | |||||
LambdaQueryWrapper<Operation> query = Wrappers.lambdaQuery(Operation.class) | |||||
.eq(Operation::getBidId, bidId); | |||||
Operation operation = operationService.getOne(query); | |||||
return BeanUtil.copyProperties(operation, OperationVO.class); | |||||
} | |||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public synchronized String pushOperation(OperationReq req) { | public synchronized String pushOperation(OperationReq req) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
@@ -10,12 +10,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.google.common.collect.Lists; | import com.google.common.collect.Lists; | ||||
import com.google.common.collect.Sets; | import com.google.common.collect.Sets; | ||||
import com.hz.pm.api.common.helper.RegionCacheHelper; | |||||
import com.hz.pm.api.common.helper.UserInfoHelper; | import com.hz.pm.api.common.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
import com.hz.pm.api.datascope.model.DataScopeDTO; | import com.hz.pm.api.datascope.model.DataScopeDTO; | ||||
import com.hz.pm.api.datascope.utils.DataScopeUtil; | import com.hz.pm.api.datascope.utils.DataScopeUtil; | ||||
import com.hz.pm.api.projectdeclared.contants.DeclaredProjectConst; | |||||
import com.hz.pm.api.projectdeclared.contant.DeclaredProjectConst; | |||||
import com.hz.pm.api.projectdeclared.model.dto.ReviewChecklistApproveDTO; | import com.hz.pm.api.projectdeclared.model.dto.ReviewChecklistApproveDTO; | ||||
import com.hz.pm.api.projectdeclared.model.entity.ReviewChecklistApprove; | import com.hz.pm.api.projectdeclared.model.entity.ReviewChecklistApprove; | ||||
import com.hz.pm.api.projectdeclared.service.IReviewChecklistApproveService; | import com.hz.pm.api.projectdeclared.service.IReviewChecklistApproveService; | ||||
@@ -71,15 +71,19 @@ public class Operation { | |||||
@ApiModelProperty("实际完成适配改造时间") | @ApiModelProperty("实际完成适配改造时间") | ||||
private LocalDateTime actualAdaptionTime; | private LocalDateTime actualAdaptionTime; | ||||
@ApiModelProperty("适配改造备注") | |||||
private String adaptionRemark; | private String adaptionRemark; | ||||
@ApiModelProperty("适配改造附件") | |||||
private String adaptionFiles; | private String adaptionFiles; | ||||
@ApiModelProperty("系统自测时间") | @ApiModelProperty("系统自测时间") | ||||
private LocalDateTime selfTestTime; | private LocalDateTime selfTestTime; | ||||
@ApiModelProperty("系统自测备注") | |||||
private String selfTestRemark; | private String selfTestRemark; | ||||
@ApiModelProperty("系统自测附件") | |||||
private String selfTestFiles; | private String selfTestFiles; | ||||
@ApiModelProperty("实际完成系统自测时间") | @ApiModelProperty("实际完成系统自测时间") | ||||
@@ -91,8 +95,10 @@ public class Operation { | |||||
@ApiModelProperty("实际完成测试验证时间") | @ApiModelProperty("实际完成测试验证时间") | ||||
private LocalDateTime actualTestValidTime; | private LocalDateTime actualTestValidTime; | ||||
@ApiModelProperty("测试验证备注") | |||||
private String testValidRemark; | private String testValidRemark; | ||||
@ApiModelProperty("测试验证附件") | |||||
private String testValidFiles; | private String testValidFiles; | ||||
} | } |
@@ -15,7 +15,7 @@ import java.time.LocalDateTime; | |||||
* @since 09:28 2024/2/23 | * @since 09:28 2024/2/23 | ||||
*/ | */ | ||||
@Data | @Data | ||||
@ApiModel(value = "实施对象") | |||||
@ApiModel("实施对象") | |||||
public class OperationVO { | public class OperationVO { | ||||
@ApiModelProperty("id") | @ApiModelProperty("id") | ||||
@@ -66,4 +66,31 @@ public class OperationVO { | |||||
@ApiModelProperty("测试验证时间") | @ApiModelProperty("测试验证时间") | ||||
private LocalDateTime testValidTime; | private LocalDateTime testValidTime; | ||||
@ApiModelProperty("实际完成适配改造时间") | |||||
private LocalDateTime actualAdaptionTime; | |||||
@ApiModelProperty("适配改造备注") | |||||
private String adaptionRemark; | |||||
@ApiModelProperty("适配改造附件") | |||||
private String adaptionFiles; | |||||
@ApiModelProperty("系统自测备注") | |||||
private String selfTestRemark; | |||||
@ApiModelProperty("系统自测附件") | |||||
private String selfTestFiles; | |||||
@ApiModelProperty("实际完成系统自测时间") | |||||
private LocalDateTime actualSelfTestTime; | |||||
@ApiModelProperty("实际完成测试验证时间") | |||||
private LocalDateTime actualTestValidTime; | |||||
@ApiModelProperty("测试验证备注") | |||||
private String testValidRemark; | |||||
@ApiModelProperty("测试验证附件") | |||||
private String testValidFiles; | |||||
} | } |
@@ -10,7 +10,7 @@ import com.hz.pm.api.gov.model.entity.GovBizProjectBaseinfo; | |||||
import com.hz.pm.api.gov.model.entity.GovOperationProjectBaseinfo; | import com.hz.pm.api.gov.model.entity.GovOperationProjectBaseinfo; | ||||
import com.hz.pm.api.gov.service.IGovBizProjectBaseinfoService; | import com.hz.pm.api.gov.service.IGovBizProjectBaseinfoService; | ||||
import com.hz.pm.api.gov.service.IGovOperationProjectBaseinfoService; | import com.hz.pm.api.gov.service.IGovOperationProjectBaseinfoService; | ||||
import com.hz.pm.api.projectdeclared.contants.ProjectCodeContant; | |||||
import com.hz.pm.api.projectdeclared.contant.ProjectCodeCont; | |||||
import com.hz.pm.api.projectlib.model.dto.ProjectDTO; | import com.hz.pm.api.projectlib.model.dto.ProjectDTO; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectCollection; | import com.hz.pm.api.projectlib.model.entity.ProjectCollection; | ||||
@@ -37,7 +37,7 @@ public class ProjectCodeGenUtil { | |||||
private final IGovOperationProjectBaseinfoService operationProjectBaseinfoService; | private final IGovOperationProjectBaseinfoService operationProjectBaseinfoService; | ||||
public String generateProjectCode(ProjectDTO project) { | public String generateProjectCode(ProjectDTO project) { | ||||
String areaCode = RegionConst.RC_HZ + ProjectCodeContant.REGION_LAST_3; | |||||
String areaCode = RegionConst.RC_HZ + ProjectCodeCont.REGION_LAST_3; | |||||
// 获取建设年度 (10-13) | // 获取建设年度 (10-13) | ||||
String year = Objects.nonNull(project.getProjectYear()) ? String.valueOf(project.getProjectYear()) | String year = Objects.nonNull(project.getProjectYear()) ? String.valueOf(project.getProjectYear()) | ||||
: String.valueOf(LocalDate.now().getYear()); | : String.valueOf(LocalDate.now().getYear()); | ||||
@@ -47,11 +47,11 @@ public class ProjectCodeGenUtil { | |||||
//要查询 两边的项目序号 | //要查询 两边的项目序号 | ||||
Long max = getMaxProjectCode(currentCode); | Long max = getMaxProjectCode(currentCode); | ||||
// 生成20位的项目编号 | // 生成20位的项目编号 | ||||
return currentCode + String.format(ProjectCodeContant.SHUZI_5, max); | |||||
return currentCode + String.format(ProjectCodeCont.SHUZI_5, max); | |||||
} | } | ||||
public String generateProjectCode(Integer projectYear) { | public String generateProjectCode(Integer projectYear) { | ||||
String areaCode = RegionConst.RC_HZ + ProjectCodeContant.REGION_LAST_3; | |||||
String areaCode = RegionConst.RC_HZ + ProjectCodeCont.REGION_LAST_3; | |||||
// 获取建设年度 (10-13) | // 获取建设年度 (10-13) | ||||
String year = projectYear != null ? String.valueOf(projectYear) : String.valueOf(LocalDate.now().getYear()); | String year = projectYear != null ? String.valueOf(projectYear) : String.valueOf(LocalDate.now().getYear()); | ||||
// 16-20 项目序号00001 | // 16-20 项目序号00001 | ||||
@@ -60,12 +60,12 @@ public class ProjectCodeGenUtil { | |||||
//要查询 两边的项目序号 | //要查询 两边的项目序号 | ||||
Long max = getMaxProjectCode(currentCode); | Long max = getMaxProjectCode(currentCode); | ||||
// 生成20位的项目编号 | // 生成20位的项目编号 | ||||
return currentCode + String.format(ProjectCodeContant.SHUZI_5, max); | |||||
return currentCode + String.format(ProjectCodeCont.SHUZI_5, max); | |||||
} | } | ||||
public String generateProjectCode(ProjectCollection project) { | public String generateProjectCode(ProjectCollection project) { | ||||
// 获取所属行政区划代码(9位) | // 获取所属行政区划代码(9位) | ||||
String areaCode = RegionConst.RC_HZ + ProjectCodeContant.REGION_LAST_3; | |||||
String areaCode = RegionConst.RC_HZ + ProjectCodeCont.REGION_LAST_3; | |||||
// 获取建设年度 (10-13) | // 获取建设年度 (10-13) | ||||
String year = Objects.nonNull(project.getProjectYear()) ? String.valueOf(project.getProjectYear()) | String year = Objects.nonNull(project.getProjectYear()) ? String.valueOf(project.getProjectYear()) | ||||
: String.valueOf(LocalDate.now().getYear()); | : String.valueOf(LocalDate.now().getYear()); | ||||
@@ -75,7 +75,7 @@ public class ProjectCodeGenUtil { | |||||
//要查询 最大的项目编号 | //要查询 最大的项目编号 | ||||
Long max = getMaxProjectCode(currentCode); | Long max = getMaxProjectCode(currentCode); | ||||
// 生成20位的项目编号 | // 生成20位的项目编号 | ||||
return currentCode + String.format(ProjectCodeContant.SHUZI_5, max); | |||||
return currentCode + String.format(ProjectCodeCont.SHUZI_5, max); | |||||
} | } | ||||
public String generateProjectCode(GovBizProjectSaveDTO dto) { | public String generateProjectCode(GovBizProjectSaveDTO dto) { | ||||
@@ -94,7 +94,7 @@ public class ProjectCodeGenUtil { | |||||
//要查询 最大的项目编号 | //要查询 最大的项目编号 | ||||
Long max = getMaxProjectCode(currentCode); | Long max = getMaxProjectCode(currentCode); | ||||
// 生成20位的项目编号 | // 生成20位的项目编号 | ||||
return currentCode + String.format(ProjectCodeContant.SHUZI_5, max); | |||||
return currentCode + String.format(ProjectCodeCont.SHUZI_5, max); | |||||
} | } | ||||
public String generateProjectCode(GovOperationProjectSaveDTO dto) { | public String generateProjectCode(GovOperationProjectSaveDTO dto) { | ||||
@@ -113,7 +113,7 @@ public class ProjectCodeGenUtil { | |||||
//要查询 最大的项目编号 | //要查询 最大的项目编号 | ||||
Long max = getMaxProjectCode(currentCode); | Long max = getMaxProjectCode(currentCode); | ||||
// 生成20位的项目编号 | // 生成20位的项目编号 | ||||
return currentCode + String.format(ProjectCodeContant.SHUZI_5, max); | |||||
return currentCode + String.format(ProjectCodeCont.SHUZI_5, max); | |||||
} | } | ||||
private synchronized Long getMaxProjectCode(String currentCode) { | private synchronized Long getMaxProjectCode(String currentCode) { | ||||
@@ -15,7 +15,7 @@ import com.hz.pm.api.irs.model.entity.ProjectCoreBiz; | |||||
import com.hz.pm.api.irs.service.IProjectCoreBizService; | import com.hz.pm.api.irs.service.IProjectCoreBizService; | ||||
import com.hz.pm.api.organization.model.entity.DingOrganization; | import com.hz.pm.api.organization.model.entity.DingOrganization; | ||||
import com.hz.pm.api.organization.service.IDingOrganizationService; | import com.hz.pm.api.organization.service.IDingOrganizationService; | ||||
import com.hz.pm.api.projectdeclared.contants.ProjectCodeContant; | |||||
import com.hz.pm.api.projectdeclared.contant.ProjectCodeCont; | |||||
import com.ningdatech.zwdd.client.ZwddClient; | import com.ningdatech.zwdd.client.ZwddClient; | ||||
import com.ningdatech.zwdd.model.dto.DingOrgInfoDTO; | import com.ningdatech.zwdd.model.dto.DingOrgInfoDTO; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
@@ -243,7 +243,7 @@ public class SynProjectCoreBizTask { | |||||
* @return | * @return | ||||
*/ | */ | ||||
private String genirate(String unifiedSocialCreditCode, Long id) { | private String genirate(String unifiedSocialCreditCode, Long id) { | ||||
String formatId = String.format(ProjectCodeContant.SHUZI_4, id); | |||||
String formatId = String.format(ProjectCodeCont.SHUZI_4, id); | |||||
return unifiedSocialCreditCode + formatId; | return unifiedSocialCreditCode + formatId; | ||||
} | } | ||||