diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java b/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java index c8a1eb8..e5fccfa 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/EmployeeBatchGetTask.java @@ -261,7 +261,6 @@ public class EmployeeBatchGetTask { iUserInfoService.save(userInfo); }else{ userInfo.setAvatar(dingEmployeeInfo.getAvatar()); - userInfo.setUpdateOn(LocalDateTime.now()); iUserInfoService.updateById(userInfo); } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/irs/manage/AppIrsManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/irs/manage/AppIrsManage.java index d92e119..ae6fb19 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/irs/manage/AppIrsManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/irs/manage/AppIrsManage.java @@ -108,37 +108,35 @@ public class AppIrsManage { ApiResponse body = forEntity.getBody(); - if(Objects.isNull(body)){ + if(Objects.isNull(body) || Objects.isNull(body.getCode()) + || 0 != body.getCode()){ return Boolean.FALSE; } - if(Objects.nonNull(body.getSuccess()) - && body.getSuccess()){ - //保存关系 - app.setAppCode(appCode); - if(applicationService.updateById(app)){ - /** - * 判断下 如果成功的话 那么判断下 这个项目的初次创建的app 是否都已经被注册 - * 如果都已经注册 要调用状态机 进入下一个状态 - */ - List apps = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectId, project.getId())); - //筛选出 初次新建的app 但是没有appCode的 - apps = apps.stream().filter(a -> { - if(CommonEnum.YES.getCode().equals(a.getIsFirst()) && - StringUtils.isBlank(app.getAppCode())){ - return Boolean.TRUE; - } - return Boolean.FALSE; - }) - .collect(Collectors.toList()); - - //如果筛选出来的 为空的话 就调用状态机 - if(CollUtil.isEmpty(apps)){ - stateMachineUtils.pass(project); - project.setUpdateOn(LocalDateTime.now()); - projectService.updateById(project); - } + //保存关系 + app.setAppCode(appCode); + if(applicationService.updateById(app)){ + /** + * 判断下 如果成功的话 那么判断下 这个项目的初次创建的app 是否都已经被注册 + * 如果都已经注册 要调用状态机 进入下一个状态 + */ + List apps = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) + .eq(ProjectApplication::getProjectId, project.getId())); + //筛选出 初次新建的app 但是没有appCode的 + apps = apps.stream().filter(a -> { + if(CommonEnum.YES.getCode().equals(a.getIsFirst()) && + StringUtils.isBlank(app.getAppCode())){ + return Boolean.TRUE; + } + return Boolean.FALSE; + }) + .collect(Collectors.toList()); + + //如果筛选出来的 为空的话 就调用状态机 + if(CollUtil.isEmpty(apps)){ + stateMachineUtils.pass(project); + project.setUpdateOn(LocalDateTime.now()); + projectService.updateById(project); } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java index e9ab1e8..6ace74a 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/ProjectLibManage.java @@ -64,6 +64,7 @@ import com.wflow.workflow.bean.vo.ProcessDetailVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.checkerframework.checker.nullness.qual.Nullable; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; @@ -213,11 +214,7 @@ public class ProjectLibManage { String employeeCode, Project oldProject) { Project project = saveConstructProjectNewVersion(projectDto,instanceId,employeeCode,oldProject); - - // 将旧的项目状态、阶段置为null,版本置为不是最新 - oldProject.setNewest(Boolean.FALSE); - projectService.updateById(oldProject); - + // 将旧的项目状态、阶段置为null,防止项目还会出现在待申报列表 LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(Project.class); updateWrapper.set(Project::getStage,null) .set(Project::getStatus,null) @@ -314,6 +311,8 @@ public class ProjectLibManage { //为空 代表是新申报的 if(Objects.isNull(projectDto.getId())){ BeanUtils.copyProperties(projectDto, project); + // 被撤回重新申报的项目,项目ID要置空 + project.setId(null); project.setCreateOn(LocalDateTime.now()); project.setUpdateOn(LocalDateTime.now()); project.setStage(ProjectStatusEnum.NOT_APPROVED.getCode()); @@ -326,10 +325,21 @@ public class ProjectLibManage { // 标记为建设方案申报 project.setIsConstruct(Boolean.TRUE); // 保存初步方案项目ID - project.setPrePlanProjectId(oldProject.getId()); + if (Boolean.TRUE.equals(oldProject.getIsConstruct())){ + // 重新提交 + project.setPrePlanProjectId(oldProject.getPrePlanProjectId()); + }else { + project.setPrePlanProjectId(oldProject.getId()); + } projectService.save(project); + + // 将旧的项目版本置为不是最新 + projectService.update(Wrappers.lambdaUpdate(Project.class) + .set(Project::getNewest,Boolean.FALSE) + .ne(Project::getId,project.getId()) + .eq(Project::getProjectCode,project.getProjectCode())); }else{ - //否则是重新提交的 新生成一个新版本的项目 + //否则是被驳回,重新提交的 新生成一个新版本的项目 project = newProjectWithVersion(projectDto); if(Objects.nonNull(project)){ project.setInstCode(instanceId); @@ -341,6 +351,15 @@ public class ProjectLibManage { //保存项目应用 Boolean isApp = Objects.nonNull(projectDto.getIncludeApplication()) && CommonEnum.YES.getCode().equals(projectDto.getIncludeApplication()) ? Boolean.TRUE : Boolean.FALSE; + //采取批量删除 批量添加的方式 批量删除建设方案申报后的应用信息 + List projectIdList = projectService.list(Wrappers.lambdaQuery(Project.class) + .eq(Project::getProjectCode, oldProject.getProjectCode()) + .eq(Project::getIsConstruct, Boolean.TRUE)).stream() + .map(Project::getId).collect(Collectors.toList()); + projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class) + .eq(ProjectApplication::getProjectCode,oldProject.getProjectCode()) + .in(ProjectApplication::getProjectId,projectIdList)); + if (isApp && CollUtil.isNotEmpty(projectDto.getApplicationList())) { Project finalProject = project; List applications = projectDto.getApplicationList().stream().map(application -> { @@ -353,7 +372,7 @@ public class ProjectLibManage { projectApplication.setBuildOrgName(finalProject.getBuildOrgName()); return projectApplication; }).collect(Collectors.toList()); - projectApplicationService.saveOrUpdateBatch(applications); + projectApplicationService.saveBatch(applications); } return project; } catch (Exception e) { @@ -454,11 +473,14 @@ public class ProjectLibManage { .ne(Project::getId,project.getId()) .eq(Project::getProjectCode,project.getProjectCode())); - //采取批量删除 批量添加的方式 + //采取批量删除 批量添加的方式 批量删除建设方案申报后的应用信息 + List projectIdList = projectService.list(Wrappers.lambdaQuery(Project.class) + .eq(Project::getProjectCode, project.getProjectCode()) + .eq(Project::getIsConstruct, Boolean.TRUE)).stream() + .map(Project::getId).collect(Collectors.toList()); projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectId,project.getId())); - projectApplicationService.remove(Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectCode,project.getProjectCode())); + .eq(ProjectApplication::getProjectCode,project.getProjectCode()) + .in(ProjectApplication::getProjectId,projectIdList)); //app List applicationList = projecDto.getApplicationList(); @@ -652,7 +674,27 @@ public class ProjectLibManage { // 查询应用 List applications = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) .eq(ProjectApplication::getProjectCode, vo.getProjectCode())); - Optional.ofNullable(applications).ifPresent(apps -> + + // 查出同一项目编号,建设方案申报前的项目ID + List projectIdList = projectService.list(Wrappers.lambdaQuery(Project.class) + .eq(Project::getProjectCode, projectInfo.getProjectCode()) + .eq(Project::getIsConstruct, Boolean.FALSE)).stream() + .map(Project::getId).collect(Collectors.toList()); + List applicationList; + // 如果是建设方案申报后的项目,过滤掉初步方案的应用信息 + if (Boolean.TRUE.equals(projectInfo.getIsConstruct())){ + applicationList = applications.stream() + .filter(a -> !projectIdList.contains(a.getProjectId())) + .collect(Collectors.toList()); + } + // 如果不是,展示初步方案的应用信息 + else { + applicationList = applications.stream() + .filter(a -> projectIdList.contains(a.getProjectId())) + .collect(Collectors.toList()); + } + + Optional.ofNullable(applicationList).ifPresent(apps -> vo.setProjectApplications(CollUtils.convert(apps, ProjectHelper::convertVO) )); @@ -739,8 +781,17 @@ public class ProjectLibManage { vo.buildDynamicForm(projectInfo.getDynamicForm()); // 查询应用 List applications = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) - .eq(ProjectApplication::getProjectId, vo.getId())); - Optional.ofNullable(applications).ifPresent(apps -> + .eq(ProjectApplication::getProjectCode, vo.getProjectCode())); + // 查出同一项目编号,建设方案申报前的项目ID + List projectIdList = projectService.list(Wrappers.lambdaQuery(Project.class) + .eq(Project::getProjectCode, projectInfo.getProjectCode()) + .eq(Project::getIsConstruct, Boolean.FALSE)).stream() + .map(Project::getId).collect(Collectors.toList()); + List applicationList = applications.stream() + .filter(a -> projectIdList.contains(a.getProjectId())) + .collect(Collectors.toList()); + + Optional.ofNullable(applicationList).ifPresent(apps -> vo.setProjectApplications(CollUtils.convert(apps, ProjectHelper::convertVO) )); diff --git a/pmapi/src/main/resources/application-pre.yml b/pmapi/src/main/resources/application-pre.yml new file mode 100644 index 0000000..9f2a0f2 --- /dev/null +++ b/pmapi/src/main/resources/application-pre.yml @@ -0,0 +1,232 @@ +server: + port: 38888 + servlet: + context-path: /pm + +spring: + mvc: + pathmatch: + matching-strategy: ant_path_matcher + session: + store-type: redis + redis: + namespace: "spring:session" + redis: + timeout: 5000 + host: 47.98.125.47 + port: 26379 + database: 5 + password: Ndkj1234 + jedis: + pool: + max-active: 200 + max-idle: 500 + min-idle: 8 + max-wait: 10000 + application: + name: pm + jackson: + default-property-inclusion: non_null + time-zone: GMT+8 + date-format: yyyy-MM-dd HH:mm:ss + jpa: + properties: + hibernate: + default_schema: PUBLIC + hbm2ddl: + auto: update + show_sql: true + show-sql: true + hibernate: + ddl-auto: update + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: com.kingbase8.Driver + # 数据源 + 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 + #设置上传 单个文件的大小 + servlet: + multipart: + max-file-size: 100MB + max-request-size: 150MB +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + global-config: + db-config: + logic-delete-value: true + logic-not-delete-value: false +logging: + config: classpath:logback-spring.xml + #日志配置 + level: + root: info + file: + path: logs +nd: + cache: + type: REDIS + serializerType: ProtoStuff + cacheNullVal: true + def: + keyPrefix: pm + log: + enabled: true + type: DB + # 文件存储 + file: + storage-type: ALI_OSS + ali: + protocol: http:// + bucket: projectmangmentoss + urlPrefix: oss-cn-lishui-gov-d01-a.ops.lsdx-zw.gov.cn + endpoint: oss-cn-lishui-gov-d01-a.ops.lsdx-zw.gov.cn + accessKeyId: XS3kNLtfW5i41SaC + accessKeySecret: 2cywvSZWANml7pZXxRAeAiHfisIhqm +# 日志文件配置 +log: + path: ./logs + info: + file-size: 50MB + max-size: 5 + total-size: 200MB + error: + file-size: 10MB + max-size: 5 + total-size: 50MB + +swagger: + enabled: true + +flowable: + async-executor-activate: true + #关闭一些不需要的功能服务 + rest-api-enabled: false +# database-schema-update: false + idm: + enabled: false + common: + enabled: false + dmn: + enabled: false + form: + enabled: false + app: + enabled: false + +wflow: + file: + max-size: 20 #最大文件上传大小,MB + +sa-token: + # token 名称 (同时也是cookie名称) + token-name: wflowToken + # token 有效期,单位s 默认30天, -1代表永不过期 + timeout: 172800 + # token 临时有效期 (指定时间内无操作就视为token过期) 单位: 秒 + activity-timeout: -1 + # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) + is-concurrent: true + # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) + is-share: false + # token风格 + token-style: uuid + # 是否输出操作日志 + is-log: false +#浙政钉公司顶级organizationCode +organization: + dept-visible-scopes: + - GO_c1a6f8d5338e4a468337b08da76e2e31 + +yxt: + wsdl-url: classpath:wsdl-prod.xml + #账号 + user-code: Lssdsjj + #密码 + password: Lssdsjj@2021 + #音信通开关 + sms-enable: true + tel-enable: true + +#省局联审 请求信息 +provincial: +# host: https://pms.zj.gov.cn/prometheus-zhejiang_foreign +# pushUrl: /api/v1/foreign/importantPro +# detailUrl: /api/v1/foreign/importantProView +# key: b5b2096953534a53991be4ea95f8cffa +# secret: 1bec9b77134d4962ac466fbe9696b897 + host: http://223.4.72.75/prometheus-zhejiang_foreign + pushUrl: /api/v1/foreign/importantPro + detailUrl: /api/v1/foreign/importantProView + key: 7fb48b518c6044a5a44deddd11b445e3 + secret: ced8fff70018413c9516c58f95885624 + + +#天印服务器接口信息 +irs: + is-search-app: true + seal-platform: + project-id: 330001110 + project-secret: 70e512d40c8f440484db4acab181570a + access-key: 42bcb49bea174986a3bfdfba7d005566 + secret-key: bebff29877d4443abd67fc4f8fb335d8 + api-url: https://bcdsg.zj.gov.cn:8443/restapi/prod/IC33000020220309000004/seal-platform/seal/v1/rest/sign/signPdf + app-report: + url: https://bcdsg.zj.gov.cn:8443/restapi/prod/IC33000020230427000001/irs-res-bill/report/pdfUrl + appScret: BCDSGS_4ab4235d26a9a357170a39f3a13fd68c + appKey: BCDSGA_d874c8e46b541eb4e8aac6510fd3351b + push-app: + url: https://interface.zjzwfw.gov.cn/gateway/api/proxy/001003001029/dataSharing/94wbaL1I1Pbz0648.htm + appScret: 496f0f2a19994f76b4fd9dae087366c7 + appKey: A331101453557202109017383 + search-app: + url: https://interface.zjzwfw.gov.cn/gateway/api/001003001029/dataSharing/XS8daav3bcemZ3Ra.htm + appScret: 496f0f2a19994f76b4fd9dae087366c7 + appKey: A331101453557202109017383 +hostname: iZ6mx01gyeodd80imxd2gbZ +login: + phone-verify-code: + skip: true diff --git a/pmapi/src/main/resources/integration/zwdd-pre.yml b/pmapi/src/main/resources/integration/zwdd-pre.yml new file mode 100644 index 0000000..6b30e1b --- /dev/null +++ b/pmapi/src/main/resources/integration/zwdd-pre.yml @@ -0,0 +1,12 @@ +#浙政钉 +integration: + zwdd: + #扫码 + app-auth-key: ls_project_managment_din-b1Y3I1g7Rr94yX76KfFkpp18Uy4WHtU0b6rINJ3 + app-auth-secret: 75e8PMHv984KYF0Mcy6v4pxt480y73dbD7kB65dD + #免登/获取信息 + app-key: ls_project-c32LNu87v60UiANZVja + app-secret: R14QgbBr21751LTGml3Vt8oX9doPl4Lk1ROzZNfG + #专有钉钉在开发管理工作台,右键查看网页源码realmId: '31141',浙政钉固定196729 + tenantId: 196729 + domain: openplatform-pro.ding.zj.gov.cn \ No newline at end of file diff --git a/pmapi/src/main/resources/security/auth-pre.yml b/pmapi/src/main/resources/security/auth-pre.yml new file mode 100644 index 0000000..f878360 --- /dev/null +++ b/pmapi/src/main/resources/security/auth-pre.yml @@ -0,0 +1,78 @@ +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 + agent-login-url: /api/v1/user/auth/agent-login + logout-url: /api/v1/user/auth/logout + common-login-url: /api/v1/user/auth/common-login + ignore-auth-urls: + - /v2/api-docs + - /swagger-ui.html + - /webjars/** + - /swagger-resources/** + - /webjars/ + - /api/v1/user/auth/register + - /api/v1/user/auth/auth-require + - /api/v1/user/auth/invalid-session + - /api/v1/user/auth/login/password + - /api/v1/user/auth/forget-password + - /api/v1/user/auth/common-login + - /doc.html + - /ok.html + - /open/api/** + - /oa/** + - /wflow/** + - /sys/** + - /api/v1/verification/** + - /api/v1/expert/registration + - /api/v1/meta/dictionary/list + - /api/v1/meta/tag + - /api/v1/organization/tree-list + - /api/v1/organization/get-child-list + - /api/v1/region/tree + - /api/v1/expert/get-zzd-info + - /file/upload + - /file/download + - /api/v1/zwdd/pull/** + - /api/v1/irs/** + ignore-csrf-urls: + - /api/v1/user/auth/** + - /v2/api-docs + - /swagger-ui.html + - /webjars/** + - /swagger-resources/** + - /webjars/ + - /doc.html + - /ok.html + - /api/v1/** + - /file/** + - /optLog/** + - /dict/** + - /oa/** + - /wflow/** + - /sys/** + - /api/v1/verification/** + - /api/v1/expert/registration + - /api/v1/meta/dictionary/list + - /api/v1/meta/tag + - /api/v1/organization/tree-list + - /api/v1/organization/get-child-list + - /api/v1/region/tree + - /api/v1/expert/get-zzd-info + - /file/upload + - /file/download + - /api/v1/zwdd/pull/** + - /api/v1/irs/** + role-map: + "engineer": + "project_manager": + - /api/v1/user-info/kick-off/** + "enterprise_admin": + "regional_general_manager": + "driver": + "super_admin": + - /api/v1/user-info/save + - /api/v1/user-info/del + - /api/v1/user-info/kick-off/** + - /api/v1/user-info/password/mod \ No newline at end of file diff --git a/pmapi/src/test/resources/application-pre.yml b/pmapi/src/test/resources/application-pre.yml new file mode 100644 index 0000000..9f2a0f2 --- /dev/null +++ b/pmapi/src/test/resources/application-pre.yml @@ -0,0 +1,232 @@ +server: + port: 38888 + servlet: + context-path: /pm + +spring: + mvc: + pathmatch: + matching-strategy: ant_path_matcher + session: + store-type: redis + redis: + namespace: "spring:session" + redis: + timeout: 5000 + host: 47.98.125.47 + port: 26379 + database: 5 + password: Ndkj1234 + jedis: + pool: + max-active: 200 + max-idle: 500 + min-idle: 8 + max-wait: 10000 + application: + name: pm + jackson: + default-property-inclusion: non_null + time-zone: GMT+8 + date-format: yyyy-MM-dd HH:mm:ss + jpa: + properties: + hibernate: + default_schema: PUBLIC + hbm2ddl: + auto: update + show_sql: true + show-sql: true + hibernate: + ddl-auto: update + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driverClassName: com.kingbase8.Driver + # 数据源 + 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 + #设置上传 单个文件的大小 + servlet: + multipart: + max-file-size: 100MB + max-request-size: 150MB +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + global-config: + db-config: + logic-delete-value: true + logic-not-delete-value: false +logging: + config: classpath:logback-spring.xml + #日志配置 + level: + root: info + file: + path: logs +nd: + cache: + type: REDIS + serializerType: ProtoStuff + cacheNullVal: true + def: + keyPrefix: pm + log: + enabled: true + type: DB + # 文件存储 + file: + storage-type: ALI_OSS + ali: + protocol: http:// + bucket: projectmangmentoss + urlPrefix: oss-cn-lishui-gov-d01-a.ops.lsdx-zw.gov.cn + endpoint: oss-cn-lishui-gov-d01-a.ops.lsdx-zw.gov.cn + accessKeyId: XS3kNLtfW5i41SaC + accessKeySecret: 2cywvSZWANml7pZXxRAeAiHfisIhqm +# 日志文件配置 +log: + path: ./logs + info: + file-size: 50MB + max-size: 5 + total-size: 200MB + error: + file-size: 10MB + max-size: 5 + total-size: 50MB + +swagger: + enabled: true + +flowable: + async-executor-activate: true + #关闭一些不需要的功能服务 + rest-api-enabled: false +# database-schema-update: false + idm: + enabled: false + common: + enabled: false + dmn: + enabled: false + form: + enabled: false + app: + enabled: false + +wflow: + file: + max-size: 20 #最大文件上传大小,MB + +sa-token: + # token 名称 (同时也是cookie名称) + token-name: wflowToken + # token 有效期,单位s 默认30天, -1代表永不过期 + timeout: 172800 + # token 临时有效期 (指定时间内无操作就视为token过期) 单位: 秒 + activity-timeout: -1 + # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) + is-concurrent: true + # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) + is-share: false + # token风格 + token-style: uuid + # 是否输出操作日志 + is-log: false +#浙政钉公司顶级organizationCode +organization: + dept-visible-scopes: + - GO_c1a6f8d5338e4a468337b08da76e2e31 + +yxt: + wsdl-url: classpath:wsdl-prod.xml + #账号 + user-code: Lssdsjj + #密码 + password: Lssdsjj@2021 + #音信通开关 + sms-enable: true + tel-enable: true + +#省局联审 请求信息 +provincial: +# host: https://pms.zj.gov.cn/prometheus-zhejiang_foreign +# pushUrl: /api/v1/foreign/importantPro +# detailUrl: /api/v1/foreign/importantProView +# key: b5b2096953534a53991be4ea95f8cffa +# secret: 1bec9b77134d4962ac466fbe9696b897 + host: http://223.4.72.75/prometheus-zhejiang_foreign + pushUrl: /api/v1/foreign/importantPro + detailUrl: /api/v1/foreign/importantProView + key: 7fb48b518c6044a5a44deddd11b445e3 + secret: ced8fff70018413c9516c58f95885624 + + +#天印服务器接口信息 +irs: + is-search-app: true + seal-platform: + project-id: 330001110 + project-secret: 70e512d40c8f440484db4acab181570a + access-key: 42bcb49bea174986a3bfdfba7d005566 + secret-key: bebff29877d4443abd67fc4f8fb335d8 + api-url: https://bcdsg.zj.gov.cn:8443/restapi/prod/IC33000020220309000004/seal-platform/seal/v1/rest/sign/signPdf + app-report: + url: https://bcdsg.zj.gov.cn:8443/restapi/prod/IC33000020230427000001/irs-res-bill/report/pdfUrl + appScret: BCDSGS_4ab4235d26a9a357170a39f3a13fd68c + appKey: BCDSGA_d874c8e46b541eb4e8aac6510fd3351b + push-app: + url: https://interface.zjzwfw.gov.cn/gateway/api/proxy/001003001029/dataSharing/94wbaL1I1Pbz0648.htm + appScret: 496f0f2a19994f76b4fd9dae087366c7 + appKey: A331101453557202109017383 + search-app: + url: https://interface.zjzwfw.gov.cn/gateway/api/001003001029/dataSharing/XS8daav3bcemZ3Ra.htm + appScret: 496f0f2a19994f76b4fd9dae087366c7 + appKey: A331101453557202109017383 +hostname: iZ6mx01gyeodd80imxd2gbZ +login: + phone-verify-code: + skip: true