@@ -1,4 +1,4 @@ | |||
package com.hz.pm.api.projectdeclared.contants; | |||
package com.hz.pm.api.projectdeclared.contant; | |||
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 | |||
@@ -6,7 +6,7 @@ package com.hz.pm.api.projectdeclared.contants; | |||
* @Date 2023/8/10 15:20 | |||
* @Author PoffyZhang | |||
*/ | |||
public interface ProjectCodeContant { | |||
public interface ProjectCodeCont { | |||
String REGION_LAST_3 = "000"; | |||
@@ -1,9 +1,9 @@ | |||
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.model.dto.OperationReq; | |||
import com.hz.pm.api.projectdeclared.model.vo.OperationVO; | |||
import com.ningdatech.log.annotation.WebLog; | |||
import io.swagger.annotations.Api; | |||
import io.swagger.annotations.ApiOperation; | |||
import lombok.RequiredArgsConstructor; | |||
@@ -14,26 +14,34 @@ import org.springframework.web.bind.annotation.*; | |||
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 | |||
@Validated | |||
@RestController | |||
@Api("实施管理") | |||
@RequestMapping("/api/v1/declared/operation") | |||
@Api(value = "OperationController", tags = "申报管理-实施") | |||
@RequiredArgsConstructor | |||
public class OperationController { | |||
private final OperationManage operationManage; | |||
@ApiOperation(value = "实施详情", notes = "实施详情") | |||
@ApiOperation("项目实施详情") | |||
@GetMapping("/detail/{projectId}") | |||
public List<OperationVO> detail(@PathVariable Long projectId) { | |||
public List<OperationVO> detailByProjectId(@PathVariable Long projectId) { | |||
return operationManage.detail(projectId); | |||
} | |||
@ApiOperation("标段实施详情") | |||
@GetMapping("/detailByBidId/{bidId}") | |||
public OperationVO detailByBidId(@PathVariable Long bidId) { | |||
return operationManage.detailByBidId(bidId); | |||
} | |||
@PostMapping("/push-operation") | |||
@ApiOperation("填写实施计划") | |||
@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.gov.manage.GovProjectCollectionManage; | |||
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.entity.ProjectDraft; | |||
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.vo.ProcessStartParamsVo; | |||
import com.wflow.workflow.service.ProcessInstanceService; | |||
import com.wflow.workflow.service.ProcessModelService; | |||
import lombok.RequiredArgsConstructor; | |||
import lombok.extern.slf4j.Slf4j; | |||
import org.apache.commons.lang3.StringUtils; | |||
@@ -1,6 +1,7 @@ | |||
package com.hz.pm.api.projectdeclared.manage; | |||
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.Wrappers; | |||
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)); | |||
} | |||
/** | |||
* 获取标段实施详情 | |||
*/ | |||
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) | |||
public synchronized String pushOperation(OperationReq req) { | |||
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.google.common.collect.Lists; | |||
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.model.constant.BizConst; | |||
import com.hz.pm.api.datascope.model.DataScopeDTO; | |||
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.entity.ReviewChecklistApprove; | |||
import com.hz.pm.api.projectdeclared.service.IReviewChecklistApproveService; | |||
@@ -71,15 +71,19 @@ public class Operation { | |||
@ApiModelProperty("实际完成适配改造时间") | |||
private LocalDateTime actualAdaptionTime; | |||
@ApiModelProperty("适配改造备注") | |||
private String adaptionRemark; | |||
@ApiModelProperty("适配改造附件") | |||
private String adaptionFiles; | |||
@ApiModelProperty("系统自测时间") | |||
private LocalDateTime selfTestTime; | |||
@ApiModelProperty("系统自测备注") | |||
private String selfTestRemark; | |||
@ApiModelProperty("系统自测附件") | |||
private String selfTestFiles; | |||
@ApiModelProperty("实际完成系统自测时间") | |||
@@ -91,8 +95,10 @@ public class Operation { | |||
@ApiModelProperty("实际完成测试验证时间") | |||
private LocalDateTime actualTestValidTime; | |||
@ApiModelProperty("测试验证备注") | |||
private String testValidRemark; | |||
@ApiModelProperty("测试验证附件") | |||
private String testValidFiles; | |||
} |
@@ -15,7 +15,7 @@ import java.time.LocalDateTime; | |||
* @since 09:28 2024/2/23 | |||
*/ | |||
@Data | |||
@ApiModel(value = "实施对象") | |||
@ApiModel("实施对象") | |||
public class OperationVO { | |||
@ApiModelProperty("id") | |||
@@ -66,4 +66,31 @@ public class OperationVO { | |||
@ApiModelProperty("测试验证时间") | |||
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.service.IGovBizProjectBaseinfoService; | |||
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.entity.Project; | |||
import com.hz.pm.api.projectlib.model.entity.ProjectCollection; | |||
@@ -37,7 +37,7 @@ public class ProjectCodeGenUtil { | |||
private final IGovOperationProjectBaseinfoService operationProjectBaseinfoService; | |||
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) | |||
String year = Objects.nonNull(project.getProjectYear()) ? String.valueOf(project.getProjectYear()) | |||
: String.valueOf(LocalDate.now().getYear()); | |||
@@ -47,11 +47,11 @@ public class ProjectCodeGenUtil { | |||
//要查询 两边的项目序号 | |||
Long max = getMaxProjectCode(currentCode); | |||
// 生成20位的项目编号 | |||
return currentCode + String.format(ProjectCodeContant.SHUZI_5, max); | |||
return currentCode + String.format(ProjectCodeCont.SHUZI_5, max); | |||
} | |||
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) | |||
String year = projectYear != null ? String.valueOf(projectYear) : String.valueOf(LocalDate.now().getYear()); | |||
// 16-20 项目序号00001 | |||
@@ -60,12 +60,12 @@ public class ProjectCodeGenUtil { | |||
//要查询 两边的项目序号 | |||
Long max = getMaxProjectCode(currentCode); | |||
// 生成20位的项目编号 | |||
return currentCode + String.format(ProjectCodeContant.SHUZI_5, max); | |||
return currentCode + String.format(ProjectCodeCont.SHUZI_5, max); | |||
} | |||
public String generateProjectCode(ProjectCollection project) { | |||
// 获取所属行政区划代码(9位) | |||
String areaCode = RegionConst.RC_HZ + ProjectCodeContant.REGION_LAST_3; | |||
String areaCode = RegionConst.RC_HZ + ProjectCodeCont.REGION_LAST_3; | |||
// 获取建设年度 (10-13) | |||
String year = Objects.nonNull(project.getProjectYear()) ? String.valueOf(project.getProjectYear()) | |||
: String.valueOf(LocalDate.now().getYear()); | |||
@@ -75,7 +75,7 @@ public class ProjectCodeGenUtil { | |||
//要查询 最大的项目编号 | |||
Long max = getMaxProjectCode(currentCode); | |||
// 生成20位的项目编号 | |||
return currentCode + String.format(ProjectCodeContant.SHUZI_5, max); | |||
return currentCode + String.format(ProjectCodeCont.SHUZI_5, max); | |||
} | |||
public String generateProjectCode(GovBizProjectSaveDTO dto) { | |||
@@ -94,7 +94,7 @@ public class ProjectCodeGenUtil { | |||
//要查询 最大的项目编号 | |||
Long max = getMaxProjectCode(currentCode); | |||
// 生成20位的项目编号 | |||
return currentCode + String.format(ProjectCodeContant.SHUZI_5, max); | |||
return currentCode + String.format(ProjectCodeCont.SHUZI_5, max); | |||
} | |||
public String generateProjectCode(GovOperationProjectSaveDTO dto) { | |||
@@ -113,7 +113,7 @@ public class ProjectCodeGenUtil { | |||
//要查询 最大的项目编号 | |||
Long max = getMaxProjectCode(currentCode); | |||
// 生成20位的项目编号 | |||
return currentCode + String.format(ProjectCodeContant.SHUZI_5, max); | |||
return currentCode + String.format(ProjectCodeCont.SHUZI_5, max); | |||
} | |||
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.organization.model.entity.DingOrganization; | |||
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.model.dto.DingOrgInfoDTO; | |||
import lombok.RequiredArgsConstructor; | |||
@@ -243,7 +243,7 @@ public class SynProjectCoreBizTask { | |||
* @return | |||
*/ | |||
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; | |||
} | |||