diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml index e030cd3..9e0ac18 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml +++ b/pmapi/src/main/java/com/ningdatech/pmapi/meeting/mapper/MeetingExpertMapper.xml @@ -111,7 +111,7 @@ and np.project_name like concat('%', #{p.projectName}, '%') - and np.build_org_name like concat('%', #{buildOrgName}, '%') + and np.build_org_name like concat('%', #{p.buildOrgName}, '%') and m.start_time >= #{p.reviewTimeMin} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/sys/service/impl/RoleServiceImpl.java b/pmapi/src/main/java/com/ningdatech/pmapi/sys/service/impl/RoleServiceImpl.java index 0b614a9..0d6c7b0 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/sys/service/impl/RoleServiceImpl.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/sys/service/impl/RoleServiceImpl.java @@ -175,8 +175,8 @@ public class RoleServiceImpl extends ServiceImpl implements IR } private void saveRoleMenu(List menuIds, Long roleId) { + roleMenuService.remove(Wrappers.lambdaQuery(RoleMenu.class).eq(RoleMenu::getRoleId, roleId)); if (CollUtil.isNotEmpty(menuIds)) { - roleMenuService.remove(Wrappers.lambdaQuery(RoleMenu.class).eq(RoleMenu::getRoleId, roleId)); Set toAddMenus = new HashSet<>(); for (Long menuId : menuIds) { Menu menu = menuService.getById(menuId); diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java index a8f3547..4674040 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java @@ -12,6 +12,8 @@ import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; +import com.ningdatech.pmapi.projectdeclared.manage.DeclaredProjectManage; +import com.ningdatech.pmapi.projectdeclared.model.dto.ProjectDraftSaveDTO; import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; import com.wflow.workflow.enums.ProcessStatusEnum; import org.apache.commons.io.FileUtils; @@ -144,6 +146,7 @@ public class TodoCenterManage { private final ICompanySignatureService companySignatureService; private final StatisticsService statisticsService; private final INotifyService notifyService; + private final DeclaredProjectManage declaredProjectManage; /** * 待办中心待我处理项目列表查询 @@ -437,13 +440,20 @@ public class TodoCenterManage { switch (Objects.requireNonNull(ProjectStatusEnum.getValue(projectStatus))) { // 当前项目状态是单位内部审核中 case UNDER_INTERNAL_AUDIT: - // 当前项目状态是预审中 + // 更新项目状态为待申报 + updateWithdrawProjectStatus(user.getUserId(), declaredProject); + // 保存到草稿箱中 + ProjectDraftSaveDTO draftSaveDto = new ProjectDraftSaveDTO(); + BeanUtils.copyProperties(declaredProject,draftSaveDto); + declaredProjectManage.saveToDraft(draftSaveDto); + break; + // 当前项目状态是预审中 case PRE_APPLYING: - // 当前项目状态是部门联审中 + // 当前项目状态是部门联审中 case DEPARTMENT_JOINT_REVIEW: - // 当前项目状态是方案评审中 + // 当前项目状态是方案评审中 case SCHEME_UNDER_REVIEW: - // 当前项目状态是终验审核中 + // 当前项目状态是终验审核中 case FINAL_ACCEPTANCE_IS_UNDER_REVIEW: updateWithdrawProjectStatus(user.getUserId(), declaredProject); break; @@ -735,10 +745,14 @@ public class TodoCenterManage { * @since 2023/02/08 */ private void updatePassProjectStatus(Long userId, Project declaredProject) { - stateMachineUtils.pass(declaredProject); - declaredProject.setUpdateOn(LocalDateTime.now()); - declaredProject.setUpdateBy(userId); - projectService.updateById(declaredProject); + try { + stateMachineUtils.pass(declaredProject); + declaredProject.setUpdateOn(LocalDateTime.now()); + declaredProject.setUpdateBy(userId); + projectService.updateById(declaredProject); + } catch (Exception e) { + throw new BizException("状态机执行失败!"); + } } /** @@ -822,6 +836,7 @@ public class TodoCenterManage { stateMachineUtils.withDraw(declaredProject); declaredProject.setUpdateOn(LocalDateTime.now()); declaredProject.setUpdateBy(userId); + projectService.updateById(declaredProject); } catch (Exception e) { throw new BizException("状态机执行失败!"); } 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 c127bc7..de67421 100644 --- a/pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java +++ b/pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java @@ -24,10 +24,10 @@ public class StateMachineTest extends AppTests { @Test public void stateMachineTest() { Project project = new Project(); - project.setStage(ProjectStatusEnum.PROJECT_APPROVED.getCode()); - project.setStatus(ProjectStatusEnum.IN_THE_ANNUAL_PLAN.getCode()); + project.setStage(ProjectStatusEnum.NOT_APPROVED.getCode()); + project.setStatus(ProjectStatusEnum.UNDER_INTERNAL_AUDIT.getCode()); project.setDeclareAmount(BigDecimal.valueOf(2000)); - stateMachineUtils.pass(project); + stateMachineUtils.withDraw(project); System.out.println(String.format("project:%s", JSON.toJSONString(project))); } } diff --git a/pmapi/src/test/resources/application-dev.yml b/pmapi/src/test/resources/application-dev.yml index b725afa..71396b1 100644 --- a/pmapi/src/test/resources/application-dev.yml +++ b/pmapi/src/test/resources/application-dev.yml @@ -1,5 +1,5 @@ server: - port: 28888 + port: 38888 servlet: context-path: /pm @@ -15,7 +15,7 @@ spring: timeout: 5000 host: 47.98.125.47 port: 26379 - database: 0 + database: 4 password: Ndkj1234 jedis: pool: @@ -87,7 +87,11 @@ spring: wall: config: multi-statement-allow: true - + #设置上传 单个文件的大小 + servlet: + multipart: + max-file-size: 100MB + max-request-size: 150MB mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl @@ -97,22 +101,21 @@ mybatis-plus: logic-not-delete-value: false logging: config: classpath:logback-spring.xml -#日志配置 + #日志配置 level: root: info file: path: logs - nd: - log: - enabled: true - type: DB cache: type: REDIS serializerType: ProtoStuff cacheNullVal: true def: keyPrefix: pm + log: + enabled: true + type: DB # 文件存储 file: storage-type: ALI_OSS @@ -172,15 +175,36 @@ sa-token: token-style: uuid # 是否输出操作日志 is-log: false +#浙政钉公司顶级organizationCode +organization: + dept-visible-scopes: + - GO_ff70e47bae684fdba0d64f4acab85661 + +yxt: +# wsdl-url: http://115.239.137.23:9501/ws/v1?wsdl + wsdl-url: classpath:/wsdl.xml + #账号 + user-code: hzndkj + #密码 + password: hzndkj@2021 + #音信通开关 + sms-enable: true + tel-enable: true + +#省局联审 请求信息 +provincial: + host: http://zj.ningdatech.com/prometheus-zhejiang_foreign + pushUrl: /api/v1/foreign/importantPro + detailUrl: /api/v1/foreign/importantProView + key: 7196317343a64e67895dc0375c098fe7 + secret: 75152a97f20e4c4c854dc6301cf72ad4 + -#专有钉钉 -ding: - #扫码 - app-auth-key: expert-base_dingoa-c5nnefYVnie - app-auth-secret: nm8qtST8uK431HYrjr7srcE23sT4889QgMcYFM3L - # #免登/获取信息 - app-key: file-manage-4Mjx9358wuxjyYFjY3 - app-secret: hE41938wqyQ5LOpc1QDRA9e7gb5YugoClWD3nY4O - #专有钉钉在开发管理工作台,右键查看网页源码realmId: '31141',浙政钉固定196729 - tenantId: 31141 - domain: openplatform.dg-work.cn \ No newline at end of file +#天印服务器接口信息 +irs: + seal-platform: + project-id: 1 + project-secret: 2 + access-key: 3 + secret-key: 4 + api-url: https://ibcdsg.zj.gov.cn:8443/restapi/prod/IC33000020220309000004/seal-platform/seal/v1/rest/sign/signPdf diff --git a/pmapi/src/test/resources/integration/zwdd-dev.yml b/pmapi/src/test/resources/integration/zwdd-dev.yml index b2bbff9..cc28814 100644 --- a/pmapi/src/test/resources/integration/zwdd-dev.yml +++ b/pmapi/src/test/resources/integration/zwdd-dev.yml @@ -2,11 +2,9 @@ integration: zwdd: #扫码 - app-auth-key: expert-base_dingoa-c5nnefYVnie - app-auth-secret: nm8qtST8uK431HYrjr7srcE23sT4889QgMcYFM3L - # #免登/获取信息 -# app-key: file-manage-4Mjx9358wuxjyYFjY3 -# app-secret: hE41938wqyQ5LOpc1QDRA9e7gb5YugoClWD3nY4O + app-auth-key: ls-rebuild_dingoa-rgeWs3YVr26z + app-auth-secret: 37qCe6ylNMW0N8K2741z0c2b9vJP2gtuMRQQtZ9P + #免登/获取信息 app-key: ls_rebuild-10c8n5X0707yFV7jURr app-secret: gN8J3WazyXLMWKDuFmx6C4yaH5lFUY41x8rYLLo6 #专有钉钉在开发管理工作台,右键查看网页源码realmId: '31141',浙政钉固定196729 diff --git a/pmapi/src/test/resources/integration/zwdd-prod.yml b/pmapi/src/test/resources/integration/zwdd-prod.yml index 0073994..cc28814 100644 --- a/pmapi/src/test/resources/integration/zwdd-prod.yml +++ b/pmapi/src/test/resources/integration/zwdd-prod.yml @@ -1,11 +1,12 @@ #专有钉钉 -ding: - #扫码 - app-auth-key: expert-base_dingoa-c5nnefYVnie - app-auth-secret: nm8qtST8uK431HYrjr7srcE23sT4889QgMcYFM3L - # #免登/获取信息 - app-key: file-manage-4Mjx9358wuxjyYFjY3 - app-secret: hE41938wqyQ5LOpc1QDRA9e7gb5YugoClWD3nY4O - #专有钉钉在开发管理工作台,右键查看网页源码realmId: '31141',浙政钉固定196729 - tenantId: 31141 - domain: openplatform.dg-work.cn \ No newline at end of file +integration: + zwdd: + #扫码 + app-auth-key: ls-rebuild_dingoa-rgeWs3YVr26z + app-auth-secret: 37qCe6ylNMW0N8K2741z0c2b9vJP2gtuMRQQtZ9P + #免登/获取信息 + app-key: ls_rebuild-10c8n5X0707yFV7jURr + app-secret: gN8J3WazyXLMWKDuFmx6C4yaH5lFUY41x8rYLLo6 + #专有钉钉在开发管理工作台,右键查看网页源码realmId: '31141',浙政钉固定196729 + tenantId: 31141 + domain: openplatform.dg-work.cn \ No newline at end of file diff --git a/pmapi/src/test/resources/security/auth-dev.yml b/pmapi/src/test/resources/security/auth-dev.yml index b6e94cf..1bd9564 100644 --- a/pmapi/src/test/resources/security/auth-dev.yml +++ b/pmapi/src/test/resources/security/auth-dev.yml @@ -2,7 +2,8 @@ security: auth: auth-require-url: /api/v1/user/auth/auth-require invalid-session-url: /api/v1/user/auth/invalid-session - password-login-url: /api/v1/user/auth/login/password + password-login-url: /api/v1/user/auth/login + agent-login-url: /api/v1/user/auth/agent-login logout-url: /api/v1/user/auth/logout ignore-auth-urls: - /v2/api-docs @@ -15,13 +16,13 @@ security: - /api/v1/user/auth/invalid-session - /api/v1/user/auth/login/password - /api/v1/user/auth/forget-password - - /api/v1/** - /doc.html - /ok.html - /open/api/** - /oa/** - /wflow/** - /sys/** + - /api/v1/verification/** ignore-csrf-urls: - /api/v1/user/auth/** - /v2/api-docs @@ -38,6 +39,7 @@ security: - /oa/** - /wflow/** - /sys/** + - /api/v1/verification/** role-map: "engineer": "project_manager": @@ -49,5 +51,4 @@ security: - /api/v1/user-info/save - /api/v1/user-info/del - /api/v1/user-info/kick-off/** - - /api/v1/user-info/password/mod - - /api/v1/** \ No newline at end of file + - /api/v1/user-info/password/mod \ No newline at end of file diff --git a/pmapi/src/test/resources/security/auth-prod.yml b/pmapi/src/test/resources/security/auth-prod.yml index 37e3281..349a3b9 100644 --- a/pmapi/src/test/resources/security/auth-prod.yml +++ b/pmapi/src/test/resources/security/auth-prod.yml @@ -2,7 +2,7 @@ security: auth: auth-require-url: /api/v1/user/auth/auth-require invalid-session-url: /api/v1/user/auth/invalid-session - password-login-url: /api/v1/user/auth/login/password + password-login-url: /api/v1/user/auth/login logout-url: /api/v1/user/auth/logout ignore-auth-urls: - /v2/api-docs diff --git a/pmapi/src/test/resources/template/simsun.ttc b/pmapi/src/test/resources/template/simsun.ttc new file mode 100644 index 0000000..40e9693 Binary files /dev/null and b/pmapi/src/test/resources/template/simsun.ttc differ diff --git a/pmapi/src/test/resources/template/预审申请单.html b/pmapi/src/test/resources/template/预审申请单.html new file mode 100644 index 0000000..2641489 --- /dev/null +++ b/pmapi/src/test/resources/template/预审申请单.html @@ -0,0 +1,286 @@ + + + + + + Document + + + +
+

+ #title# +

+
+

+ + 项目编号: + #projectNo# + + #time# +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
项目基本信息
项目名称#projectName#
是否临时增补#isTemporaryAugment#是否一地创新全省共享项目#isInnovateWholeProvinceShare#
项目负责人#responsibleMan#负责人手机号#responsibleManMobile#
项目联系人#contactName#项目联系人手机号#contactPhone#
建设单位#buildOrgName#建设单位统一社会信用代码#orgCreditCode#
项目类型#projectType#是否首次新建#isFirst#
预算年度#projectYear#建设起止时间#beginAndEndTime#
四大体系#fourSystems#
是否数字化改革项目#isDigitalReform#综合业务领域#bizDomain#
立项依据#buildBasisList#
是否上云#isCloud#云类型#cloudType#
项目简介#projectIntroduction#
资金申报情况
申报金额#declareAmount#
自有资金#declareHaveAmount#政府投资-本级财政资金#declareGovOwnFinanceAmount#
政府投资-上级补助资金#declareGovSuperiorFinanceAmount#银行贷款#declareBankLendingAmount#
其他资金#declareOtherAmount#
本年计划投资(万元)#yearPlanInvest#
资金分配情况
软件开发#softwareDevelopmentAmount#云资源、硬件购置#cloudHardwarePurchaseAmount#
第三方服务#thirdPartyAmount#
年度支付计划
年度支付金额#annualPlanAmount#
自有资金#annualPlanHaveAmount#政府投资-本级财政资金#annualPlanGovOwnFinanceAmount#
政府投资-上级补助资金#annualPlanGovSuperiorFinanceAmount#银行贷款#annualPlanBankLendingAmount#
其他资金#annualPlanOtherAmount#
备注
备注#projectRemarks#
单位意见
本级主管单位意见(盖章) +
+

+ #superOrgOpinion# +

+

+ #superOrgAuditDate# +

+
+
上级主管单位意见(盖章) +
+

+ #higherOrgOpinion# +

+

+ #higherOrgAuditDate# +

+
+
+ #bigDataBureauName# + 意见(盖章) + +
+

+ #bigDataBureauOpinion# +

+

+ #bigDataBureauAuditDate# +

+
+
+
+
+ + diff --git a/pmapi/src/test/resources/wsdl.xml b/pmapi/src/test/resources/wsdl.xml new file mode 100644 index 0000000..eed87a7 --- /dev/null +++ b/pmapi/src/test/resources/wsdl.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file