diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareAction.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareAction.java
index 5405fa4..8176cdb 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareAction.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/action/ProjectDeclareAction.java
@@ -226,7 +226,7 @@ public class ProjectDeclareAction {
Project project = (Project) message.getHeaders().get(PROJECT_DECLARE);
// 终验审核通过后,项目一级状态变更为已归档
project.setStage(ProjectStatusEnum.ARCHIVED.getCode());
- project.setStatus(ProjectStatusEnum.ARCHIVED.getCode());
+ project.setStatus(ProjectStatusEnum.ACCEPTED.getCode());
}
@OnTransition(source = "FINAL_ACCEPTANCE_IS_UNDER_REVIEW", target = "FINAL_ACCEPTANCE_REVIEW_FAILED")
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/event/ProjectStatusChangeEvent.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/event/ProjectStatusChangeEvent.java
index ff5574e..35febc2 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/event/ProjectStatusChangeEvent.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/statemachine/event/ProjectStatusChangeEvent.java
@@ -105,7 +105,7 @@ public enum ProjectStatusChangeEvent {
/**
* 终验审核通过(项目状态变为:已归档)
*/
- FINAL_ACCEPTANCE_PASS(null, null, null),
+ FINAL_ACCEPTANCE_PASS(20004, null, null),
// 下个节点还未提交审核意见时,流程发起人和前一个审核人可以点击撤回
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingEmployeeInfoController.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingEmployeeInfoController.java
deleted file mode 100644
index 46358ef..0000000
--- a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingEmployeeInfoController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ningdatech.pmapi.organization.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.stereotype.Controller;
-
-/**
- *
- * 前端控制器
- *
- *
- * @author Lierbao
- * @since 2023-02-11
- */
-@Controller
-@RequestMapping("/pmapi.organization/ding-employee-info")
-public class DingEmployeeInfoController {
-
-}
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java
index 2ce1a10..f16e421 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/DingOrganizationController.java
@@ -1,10 +1,22 @@
package com.ningdatech.pmapi.organization.controller;
+import com.ningdatech.basic.model.PageVo;
+import com.ningdatech.pmapi.organization.manage.OrganizationManage;
+import com.ningdatech.pmapi.organization.model.po.ReqOrganizationListPO;
+import com.ningdatech.pmapi.organization.model.vo.ResOrganizationListVO;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
/**
*
@@ -14,14 +26,27 @@ import org.springframework.web.bind.annotation.RequestMapping;
* @author Lierbao
* @since 2023-02-09
*/
-@Controller
+
+@Slf4j
+@Validated
+@RestController
+@RequiredArgsConstructor
+@Api(value = "DingOrganizationController", tags = "单位管理")
@RequestMapping("/api/v1/organization")
public class DingOrganizationController {
+ private final OrganizationManage organizationManage;
+
@ApiModelProperty("单位成员配置")
@PostMapping("/member/config")
public void organizationManage() {
}
+ @ApiModelProperty("单位列表筛选")
+ @PostMapping("/list")
+ public PageVo organizationList(@Valid @RequestBody ReqOrganizationListPO reqOrganizationListPO) {
+ return organizationManage.organizationList(reqOrganizationListPO);
+ }
+
}
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/OrganizationProcdefController.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/OrganizationProcdefController.java
index 2ed8f47..94cb5f5 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/OrganizationProcdefController.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/controller/OrganizationProcdefController.java
@@ -57,14 +57,14 @@ public class OrganizationProcdefController {
@ApiOperation(value = "单位流程配置启用", notes = "单位流程配置启用")
@PutMapping("/enable/{processDefId}")
public String enableProcess(@PathVariable String processDefId) {
- orgProcessModelService.enableProcess(processDefId,Boolean.FALSE);
+ orgProcessModelService.enableProcess(processDefId, Boolean.FALSE);
return "启用成功";
}
@ApiOperation(value = "单位流程配置禁用", notes = "单位流程配置禁用")
@PutMapping("/disable/{processDefId}")
public String disableProcess(@PathVariable String processDefId) {
- orgProcessModelService.enableProcess(processDefId,Boolean.TRUE);
+ orgProcessModelService.enableProcess(processDefId, Boolean.TRUE);
return "禁用成功";
}
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java
index 24b7171..69e314a 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/manage/OrganizationManage.java
@@ -1,8 +1,21 @@
package com.ningdatech.pmapi.organization.manage;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ningdatech.basic.model.PageVo;
+import com.ningdatech.pmapi.organization.model.entity.DingOrganization;
+import com.ningdatech.pmapi.organization.model.po.ReqOrganizationListPO;
+import com.ningdatech.pmapi.organization.model.vo.ResOrganizationListVO;
+import com.ningdatech.pmapi.organization.service.IDingOrganizationService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
/**
* @author liuxinxin
* @date 2023/1/13 下午2:55
@@ -11,7 +24,34 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor
public class OrganizationManage {
-// private final
+ private final IDingOrganizationService iDingOrganizationService;
+
+ public PageVo organizationList(ReqOrganizationListPO reqOrganizationListPO) {
+ String orgName = reqOrganizationListPO.getOrgName();
+
+ Page page = iDingOrganizationService
+ .page(new Page<>(reqOrganizationListPO.getPageNumber(), reqOrganizationListPO.getPageSize())
+ , Wrappers.lambdaQuery(DingOrganization.class)
+ .like(StringUtils.isNotBlank(orgName), DingOrganization::getOrganizationName, orgName));
+
+ long total = page.getTotal();
+ List records = page.getRecords();
+
+ List resVOList = new ArrayList<>();
+ if (CollUtil.isNotEmpty(records)) {
+ resVOList = records.stream().map(r -> {
+ ResOrganizationListVO resOrganizationListVO = new ResOrganizationListVO();
+ resOrganizationListVO.setOrgCode(r.getOrganizationCode());
+ resOrganizationListVO.setOrgName(r.getOrganizationName());
+ // TODO 补充其他字段
+ return resOrganizationListVO;
+ }).collect(Collectors.toList());
+ }
+ PageVo pageVo = new PageVo<>();
+ pageVo.setTotal(total);
+ pageVo.setRecords(resVOList);
+ return pageVo;
+ }
}
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/po/ReqOrganizationListPO.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/po/ReqOrganizationListPO.java
new file mode 100644
index 0000000..b0a4e43
--- /dev/null
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/po/ReqOrganizationListPO.java
@@ -0,0 +1,31 @@
+package com.ningdatech.pmapi.organization.model.po;
+
+import com.ningdatech.basic.model.PagePo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author liuxinxin
+ * @date 2023/2/16 上午11:50
+ */
+@Data
+@ApiModel("组织列表 请求PO")
+public class ReqOrganizationListPO extends PagePo {
+
+ @ApiModelProperty("单位名称")
+ private String orgName;
+
+ @ApiModelProperty("浙政钉编码")
+ private String orgCode;
+
+ @ApiModelProperty("所属区域id")
+ private String regionId;
+
+ @ApiModelProperty("是否为主管单位")
+ private Boolean isCompetentUnit;
+
+ @ApiModelProperty("是否为上级条线主管单位")
+ private Boolean isSuperiorLineCompetentUnit;
+
+}
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/vo/ResOrganizationListVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/vo/ResOrganizationListVO.java
new file mode 100644
index 0000000..89007ef
--- /dev/null
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/organization/model/vo/ResOrganizationListVO.java
@@ -0,0 +1,38 @@
+package com.ningdatech.pmapi.organization.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author liuxinxin
+ * @date 2023/2/16 上午11:50
+ */
+@Data
+@ApiModel("组织列表VO")
+public class ResOrganizationListVO {
+
+ public String id;
+
+ @ApiModelProperty("单位名称")
+ private String orgName;
+
+ @ApiModelProperty("浙政钉编码")
+ private String orgCode;
+
+ @ApiModelProperty("财政编码")
+ private String fiscalCode;
+
+ @ApiModelProperty("所属区域id")
+ private String regionId;
+
+ @ApiModelProperty("所属区域")
+ private String regionName;
+
+ @ApiModelProperty("是否为主管单位")
+ private Boolean isCompetentUnit;
+
+ @ApiModelProperty("是否为上级条线主管单位")
+ private Boolean isSuperiorLineCompetentUnit;
+
+}
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/ConstructionPlanManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/ConstructionPlanManage.java
index 3f54677..ffc0bb1 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/ConstructionPlanManage.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectdeclared/manage/ConstructionPlanManage.java
@@ -81,7 +81,7 @@ public class ConstructionPlanManage {
//首先要判断 项目当前状态 是不是 方案待申报
VUtils.isTrue(!ProjectStatusEnum.PLAN_TO_BE_DECLARED.getCode().equals(projectInfo.getStatus()) ||
!ProjectStatusEnum.NOT_APPROVED.getCode().equals(projectInfo.getStage()))
- .throwMessage("提交失败 该项目不是 待预审状态或者未立项阶段");
+ .throwMessage("提交失败 该项目不是 方案待申报状态或者未立项阶段");
// TODO 再判断 该项目是否 真实走完 预审审批
ProcessStartParamsVo params = new ProcessStartParamsVo();
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectStatusEnum.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectStatusEnum.java
index dd2b85b..1353309 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectStatusEnum.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/enumeration/ProjectStatusEnum.java
@@ -54,7 +54,8 @@ public enum ProjectStatusEnum {
/**
* 项目阶段:已归档
*/
- ARCHIVED(30000, "已归档");
+ ARCHIVED(30000, "已归档"),
+ ACCEPTED(30001, "已验收");
private Integer code;
private String desc;
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectRenewalFundManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectRenewalFundManage.java
index acbf29d..6f60913 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectRenewalFundManage.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectRenewalFundManage.java
@@ -1,9 +1,11 @@
package com.ningdatech.pmapi.projectlib.manage;
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.projectlib.enumeration.ProjectRenewalApprovalStatusEnum;
+import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum;
import com.ningdatech.pmapi.projectlib.model.dto.ProjectRenewalFundDeclarationDTO;
import com.ningdatech.pmapi.projectlib.model.entity.Project;
import com.ningdatech.pmapi.projectlib.model.entity.ProjectRenewalFundDeclaration;
@@ -90,14 +92,26 @@ public class ProjectRenewalFundManage {
* @return
*/
public Long declared(ProjectRenewalFundDeclarationDTO dto) {
+ //要判断 项目id 是否 以及状态是 已验收
+ Long projectId = dto.getProjectId();
+ Project project = projectService.getById(projectId);
+ VUtils.isTrue(Objects.isNull(project)).throwMessage(String.format("关联的项目【%s】不存在 提交失败!",projectId));
+ VUtils.isTrue(!ProjectStatusEnum.ACCEPTED.getCode().equals(project.getStatus()) ||
+ !ProjectStatusEnum.ARCHIVED.getCode().equals(project.getStage()))
+ .throwMessage("提交失败 该项目不是 已验收状态或者已归档阶段");
ProjectRenewalFundDeclaration declaration = new ProjectRenewalFundDeclaration();
+ //如果是重新申报
+ if(Objects.nonNull(dto.getId())){
+ ProjectRenewalFundDeclaration oldDeclaration = projectRenewalFundDeclarationService.getById(dto.getId());
+ VUtils.isTrue(Objects.isNull(oldDeclaration)).throwMessage(String.format("重新申报失败 【%s】 该申报不存在!",dto.getId()));
+ BeanUtils.copyProperties(oldDeclaration,declaration);
+ }
BeanUtils.copyProperties(dto,declaration);
- declaration.setId(null);
declaration.setCreateOn(LocalDateTime.now());
declaration.setUpdateOn(LocalDateTime.now());
declaration.setApprovalStatus(ProjectRenewalApprovalStatusEnum.PENDING.name());
- if(!projectRenewalFundDeclarationService.save(declaration)){
- throw new BusinessException("申报失败");
+ if(!projectRenewalFundDeclarationService.saveOrUpdate(declaration)){
+ throw new BusinessException(String.format("申报失败 【%s】",dto.getId()));
}
return declaration.getId();
}
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/UserInfoController.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/UserInfoController.java
index 683d334..e12d07e 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/UserInfoController.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/controller/UserInfoController.java
@@ -55,4 +55,10 @@ public class UserInfoController {
userInfoManage.userInfoDetailEdit(reqUserDetailEditPO);
}
+ @ApiOperation(value = "获取当前登陆用户详情信息", notes = "用户详情")
+ @PostMapping("/current-user-info")
+ public ResUserDetailVO currentUserInfo() {
+ return userInfoManage.currentUserInfo();
+ }
+
}
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/manage/UserInfoManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/manage/UserInfoManage.java
index 78cd657..31caf14 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/user/manage/UserInfoManage.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/manage/UserInfoManage.java
@@ -93,7 +93,7 @@ public class UserInfoManage {
return null;
}
ResUserDetailVO resUserDetailVO = new ResUserDetailVO();
-
+ resUserDetailVO.setRealName(userInfo.getRealName());
resUserDetailVO.setUserId(userInfo.getId());
resUserDetailVO.setPhoneNo(userInfo.getMobile());
resUserDetailVO.setStatus(userInfo.getAvailable());
@@ -141,6 +141,7 @@ public class UserInfoManage {
.accountId(dingEmployeeInfo.getAccountId())
.username(dingEmployeeInfo.getEmployeeName())
.realName(dingEmployeeInfo.getEmployeeName())
+ .employeeCode(dingEmployeeInfo.getEmployeeCode())
.available(UserAvailableEnum.DISABLE.name())
.createBy(-1L)
.updateBy(-1L)
@@ -153,4 +154,7 @@ public class UserInfoManage {
}
+ public ResUserDetailVO currentUserInfo() {
+ return null;
+ }
}
diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/user/model/vo/ResUserDetailVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/user/model/vo/ResUserDetailVO.java
index 7b65b6a..f5badb4 100644
--- a/pmapi/src/main/java/com/ningdatech/pmapi/user/model/vo/ResUserDetailVO.java
+++ b/pmapi/src/main/java/com/ningdatech/pmapi/user/model/vo/ResUserDetailVO.java
@@ -17,6 +17,9 @@ public class ResUserDetailVO {
@ApiModelProperty("userId")
private Long userId;
+ @ApiModelProperty("用户姓名")
+ private String realName;
+
@ApiModelProperty("手机号")
private String phoneNo;
diff --git a/pmapi/src/test/java/com/ningdatech/pmapi/instance/InstanceTest.java b/pmapi/src/test/java/com/ningdatech/pmapi/instance/InstanceTest.java
new file mode 100644
index 0000000..61d2527
--- /dev/null
+++ b/pmapi/src/test/java/com/ningdatech/pmapi/instance/InstanceTest.java
@@ -0,0 +1,28 @@
+package com.ningdatech.pmapi.instance;
+
+import com.alibaba.fastjson.JSON;
+import com.ningdatech.pmapi.AppTests;
+import com.wflow.workflow.bean.dto.ProcessInstanceUserDto;
+import org.flowable.engine.RuntimeService;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * @Classname InstanceTest
+ * @Description
+ * @Date 2023/2/16 14:44
+ * @Author PoffyZhang
+ */
+public class InstanceTest extends AppTests {
+
+ @Autowired
+ private RuntimeService runtimeService;
+
+ @Test
+ public void test(){
+ String instanceId = "896fa188-96d8-11ed-9539-e2d4e8f16b2f";
+ Object user = runtimeService.getVariable(instanceId,
+ "owner");
+ System.out.println(JSON.toJSONString(user));
+ }
+}
diff --git a/pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java b/pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java
index 1819a47..a6ccbcd 100644
--- a/pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java
+++ b/pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java
@@ -1,5 +1,6 @@
package com.ningdatech.pmapi.statemachine;
+import com.alibaba.fastjson.JSON;
import com.ningdatech.pmapi.AppTests;
import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils;
import com.ningdatech.pmapi.common.statemachine.event.ProjectStatusChangeEvent;
@@ -24,9 +25,11 @@ public class StateMachineTest extends AppTests {
@Test
public void stateMachineTest() throws Exception {
Project project = new Project();
- project.setStatus(ProjectStatusEnum.PENDING_PREQUALIFICATION.getCode());
+ project.setStage(ProjectStatusEnum.PROJECT_APPROVED.getCode());
+ project.setStatus(ProjectStatusEnum.FINAL_ACCEPTANCE_IS_UNDER_REVIEW.getCode());
project.setDeclareAmount(BigDecimal.valueOf(2000));
// stateMachineUtils.execute(project, ProjectStatusChangeEvent.UNDER_INTERNAL_PASS);
stateMachineUtils.execute(project, stateMachineUtils.getProjectStatusPassEvent(project.getStatus()));
+ System.out.println(String.format("project:%s", JSON.toJSONString(project)));
}
}