From 04fbf42be40ffe15e87a3105a666090f636c621c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Mon, 10 Feb 2025 11:28:14 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/FlowComSignListener.java | 21 +++++----- .../listener/FlowGroSignListener.java | 21 +++++----- .../listener/FlowProSignListener.java | 22 +++++----- .../service/impl/FlowTaskServiceImpl.java | 28 +++++++++---- .../yanzhu/flowable/util/SpringBeanUtil.java | 40 +++++++++++++++++++ .../IProProjectInfoSubdeptsUsersService.java | 1 - .../ProProjectInfoSubdeptsServiceImpl.java | 6 +-- ...roProjectInfoSubdeptsUsersServiceImpl.java | 37 +++++++++-------- .../manage/utils/pdf/PdfImageSignetUtil.java | 1 + .../miniprogram/project.private.config.json | 2 +- 10 files changed, 113 insertions(+), 66 deletions(-) create mode 100644 yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/util/SpringBeanUtil.java diff --git a/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowComSignListener.java b/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowComSignListener.java index c769fe9a..950a1505 100644 --- a/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowComSignListener.java +++ b/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowComSignListener.java @@ -2,12 +2,11 @@ package com.yanzhu.flowable.listener; import com.yanzhu.common.core.constant.SecurityConstants; import com.yanzhu.common.core.text.Convert; +import com.yanzhu.flowable.util.SpringBeanUtil; import com.yanzhu.system.api.RemoteProService; import lombok.extern.slf4j.Slf4j; -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; +import org.flowable.engine.delegate.TaskListener; +import org.flowable.task.service.delegate.DelegateTask; import org.springframework.stereotype.Component; /** @@ -27,15 +26,13 @@ import org.springframework.stereotype.Component; */ @Slf4j @Component -public class FlowComSignListener implements ExecutionListener { - - @Lazy - @Autowired - private RemoteProService remoteProService; +public class FlowComSignListener implements TaskListener { @Override - public void notify(DelegateExecution execution) { - log.info("公司审批签名执行监听器:{}", execution.getProcessInstanceBusinessKey()); - remoteProService.subDeptsUserComSign(Convert.toLong(execution.getProcessInstanceBusinessKey(),null), SecurityConstants.INNER); + public void notify(DelegateTask delegateTask) { + Long businessKey = Convert.toLong(delegateTask.getVariable("businessKey")); + log.info("公司审批签名执行监听器:{}", businessKey); + RemoteProService remoteProService = SpringBeanUtil.getBean(RemoteProService.class); + remoteProService.subDeptsUserComSign(businessKey, SecurityConstants.INNER); } } diff --git a/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowGroSignListener.java b/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowGroSignListener.java index 41a0e47b..2f53730d 100644 --- a/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowGroSignListener.java +++ b/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowGroSignListener.java @@ -2,12 +2,11 @@ package com.yanzhu.flowable.listener; import com.yanzhu.common.core.constant.SecurityConstants; import com.yanzhu.common.core.text.Convert; +import com.yanzhu.flowable.util.SpringBeanUtil; import com.yanzhu.system.api.RemoteProService; import lombok.extern.slf4j.Slf4j; -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; +import org.flowable.engine.delegate.TaskListener; +import org.flowable.task.service.delegate.DelegateTask; import org.springframework.stereotype.Component; /** @@ -27,15 +26,13 @@ import org.springframework.stereotype.Component; */ @Slf4j @Component -public class FlowGroSignListener implements ExecutionListener { - - @Lazy - @Autowired - private RemoteProService remoteProService; +public class FlowGroSignListener implements TaskListener { @Override - public void notify(DelegateExecution execution) { - log.info("班组审批签名执行监听器:{}", execution.getProcessInstanceBusinessKey()); - remoteProService.subDeptsUserGroSign(Convert.toLong(execution.getProcessInstanceBusinessKey(),null), SecurityConstants.INNER); + public void notify(DelegateTask delegateTask) { + Long businessKey = Convert.toLong(delegateTask.getVariable("businessKey")); + log.info("班组审批签名执行监听器:{}", businessKey); + RemoteProService remoteProService = SpringBeanUtil.getBean(RemoteProService.class); + remoteProService.subDeptsUserGroSign(businessKey, SecurityConstants.INNER); } } diff --git a/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowProSignListener.java b/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowProSignListener.java index 7b463ed7..495cfaf8 100644 --- a/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowProSignListener.java +++ b/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/listener/FlowProSignListener.java @@ -2,13 +2,11 @@ package com.yanzhu.flowable.listener; import com.yanzhu.common.core.constant.SecurityConstants; import com.yanzhu.common.core.text.Convert; +import com.yanzhu.flowable.util.SpringBeanUtil; import com.yanzhu.system.api.RemoteProService; import lombok.extern.slf4j.Slf4j; -import org.flowable.common.engine.api.delegate.Expression; -import org.flowable.engine.delegate.DelegateExecution; -import org.flowable.engine.delegate.ExecutionListener; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; +import org.flowable.engine.delegate.TaskListener; +import org.flowable.task.service.delegate.DelegateTask; import org.springframework.stereotype.Component; /** @@ -28,15 +26,13 @@ import org.springframework.stereotype.Component; */ @Slf4j @Component -public class FlowProSignListener implements ExecutionListener { - - @Lazy - @Autowired - private RemoteProService remoteProService; +public class FlowProSignListener implements TaskListener { @Override - public void notify(DelegateExecution execution) { - log.info("项目审批签名执行监听器:{}", execution.getProcessInstanceBusinessKey()); - remoteProService.subDeptsUserProSign(Convert.toLong(execution.getProcessInstanceBusinessKey(),null), SecurityConstants.INNER); + public void notify(DelegateTask delegateTask) { + Long businessKey = Convert.toLong(delegateTask.getVariable("businessKey")); + log.info("项目审批签名执行监听器:{}", businessKey); + RemoteProService remoteProService = SpringBeanUtil.getBean(RemoteProService.class); + remoteProService.subDeptsUserProSign(businessKey, SecurityConstants.INNER); } } diff --git a/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/impl/FlowTaskServiceImpl.java b/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/impl/FlowTaskServiceImpl.java index ed3eb024..980efb27 100644 --- a/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/impl/FlowTaskServiceImpl.java +++ b/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/impl/FlowTaskServiceImpl.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.TypeReference; import com.github.pagehelper.PageInfo; import com.yanzhu.common.core.constant.SecurityConstants; +import com.yanzhu.common.core.domain.R; import com.yanzhu.common.core.exception.ServiceException; import com.yanzhu.common.core.exception.base.BaseException; import com.yanzhu.common.core.text.Convert; @@ -63,6 +64,7 @@ import org.flowable.task.api.TaskQuery; import org.flowable.task.api.history.HistoricTaskInstance; import org.flowable.task.api.history.HistoricTaskInstanceQuery; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -91,6 +93,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask @Resource private ISysFormService sysFormService; + @Lazy @Resource private RemoteProService remoteProService; @@ -113,22 +116,33 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask return AjaxResult.error("任务不存在"); } String userId = taskVo.getUserId(); - if(task.getName().indexOf("安全教育")>-1){ - Boolean vis = remoteProService.findUserComSign(Convert.toLong(task.getCaseVariables().get("businessKey")), SecurityConstants.INNER).getData(); + // 获取流程实例对象 + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() + .processInstanceId(task.getProcessInstanceId()) + .singleResult(); + + if(task.getName().indexOf("安全教育")>-1 || task.getName().indexOf("预算员审批")>-1){ + R data = remoteProService.findUserComSign(Convert.toLong(processInstance.getBusinessKey()), SecurityConstants.INNER); + System.out.println("DDD1"+JSON.toJSONString(data)); + Boolean vis = data.getData(); if(!vis){ - throw new ServiceException("未查询到三级安全教育主管签名信息..."); + return AjaxResult.error("未查询到三级安全教育主管签名信息..."); } } if(task.getName().indexOf("安质部")>-1){ - Boolean vis = remoteProService.findUserGroSign(Convert.toLong(task.getCaseVariables().get("businessKey")), SecurityConstants.INNER).getData(); + R data = remoteProService.findUserProSign(Convert.toLong(processInstance.getBusinessKey()), SecurityConstants.INNER); + System.out.println("DDD2"+JSON.toJSONString(data)); + Boolean vis = data.getData(); if(!vis){ - throw new ServiceException("未查询到安质部部长签名信息..."); + return AjaxResult.error("未查询到安质部部长签名信息..."); } } if(task.getName().indexOf("班组")>-1){ - Boolean vis = remoteProService.findUserGroSign(Convert.toLong(task.getCaseVariables().get("businessKey")), SecurityConstants.INNER).getData(); + R data = remoteProService.findUserGroSign(Convert.toLong(processInstance.getBusinessKey()), SecurityConstants.INNER); + System.out.println("DDD3"+JSON.toJSONString(data)); + Boolean vis = data.getData(); if(!vis){ - throw new ServiceException("未查询到班组长签名信息..."); + return AjaxResult.error("未查询到班组长签名信息..."); } } if (DelegationState.PENDING.equals(task.getDelegationState())) { diff --git a/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/util/SpringBeanUtil.java b/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/util/SpringBeanUtil.java new file mode 100644 index 00000000..bdfdb3ad --- /dev/null +++ b/yanzhu-modules/yanzhu-flowable/src/main/java/com/yanzhu/flowable/util/SpringBeanUtil.java @@ -0,0 +1,40 @@ +package com.yanzhu.flowable.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +@Component +public class SpringBeanUtil implements ApplicationContextAware { + //ApplicationContext对象是Spring开源框架的上下文对象实例,在项目运行时自动装载Handler内的所有信息到内存。 + private static ApplicationContext applicationContext; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + if (SpringBeanUtil.applicationContext == null) { + SpringBeanUtil.applicationContext = applicationContext; + } + } + + //获取applicationContext + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + //通过name获取 Bean. + public static Object getBean(String name) { + return getApplicationContext().getBean(name); + } + + //通过class获取Bean. + public static T getBean(Class clazz) { + return getApplicationContext().getBean(clazz); + } + + //通过name,以及Clazz返回指定的Bean + public static T getBean(String name, Class clazz) { + return getApplicationContext().getBean(name, clazz); + } +} + diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoSubdeptsUsersService.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoSubdeptsUsersService.java index 0c90198e..3798e158 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoSubdeptsUsersService.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProProjectInfoSubdeptsUsersService.java @@ -1,6 +1,5 @@ package com.yanzhu.manage.service; -import com.sun.org.apache.xpath.internal.operations.Bool; import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers; import com.yanzhu.manage.domain.SignetFileVo; diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsServiceImpl.java index 583edc66..5023e0b8 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsServiceImpl.java @@ -279,7 +279,7 @@ public class ProProjectInfoSubdeptsServiceImpl implements IProProjectInfoSubdept subdeptsUser.setSubDeptPowerPath(proProjectInfoSubdepts.getSubDeptLeaderPowerPath()); subdeptsUser.setUserId(proProjectInfoSubdepts.getSubDeptLeaderId()); subdeptsUser.setUserPost(UserPostEnums.WTDL.getCode()); - subdeptsUser.setUserName(proProjectInfoSubdepts.getSubDeptLeaderPhone()); + subdeptsUser.setUserName(proProjectInfoSubdepts.getSubDeptLeaderName()); subdeptsUser.setCardType(CardTypeEnums.SFZ.getCode()); subdeptsUser.setCardCode(proProjectInfoSubdepts.getSubDeptLeaderCode()); subdeptsUser.setUserPhone(proProjectInfoSubdepts.getSubDeptLeaderPhone()); @@ -344,7 +344,7 @@ public class ProProjectInfoSubdeptsServiceImpl implements IProProjectInfoSubdept subdeptsUser.setSubDeptType(proProjectInfoSubdepts.getSubDeptType()); subdeptsUser.setSubDeptPowerPath(proProjectInfoSubdepts.getSubDeptLeaderPowerPath()); subdeptsUser.setUserId(proProjectInfoSubdepts.getSubDeptLeaderId()); - subdeptsUser.setUserName(proProjectInfoSubdepts.getSubDeptLeaderPhone()); + subdeptsUser.setUserName(proProjectInfoSubdepts.getSubDeptLeaderName()); subdeptsUser.setCardType(CardTypeEnums.SFZ.getCode()); subdeptsUser.setCardCode(proProjectInfoSubdepts.getSubDeptLeaderCode()); subdeptsUser.setUserPhone(proProjectInfoSubdepts.getSubDeptLeaderPhone()); @@ -413,7 +413,7 @@ public class ProProjectInfoSubdeptsServiceImpl implements IProProjectInfoSubdept subdeptsUser.setSubDeptGroupName(groups.get(0).getGroupName()); } } - subdeptsUser.setUserName(proProjectInfoSubdepts.getSubDeptLeaderPhone()); + subdeptsUser.setUserName(proProjectInfoSubdepts.getSubDeptLeaderName()); subdeptsUser.setCardType(CardTypeEnums.SFZ.getCode()); subdeptsUser.setCardCode(proProjectInfoSubdepts.getSubDeptLeaderCode()); subdeptsUser.setUserPhone(proProjectInfoSubdepts.getSubDeptLeaderPhone()); diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java index 0c84629e..f75e09f3 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java @@ -866,17 +866,17 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu */ @Override public void startFlowableProcess(){ - String procDefId = Convert.toStr("flow_bg7gh1jg:1:102504"); + String procDefId = Convert.toStr("flow_z48zrx1o:3:167508"); // 启动工作流审批节点... Map variables = new HashMap<>(); - variables.put("INITIATOR",17); + variables.put("INITIATOR",50); variables.put("userName","姜玉琦_TEST"); variables.put("userDeptName","中国西电集团_TEST"); variables.put("comId","101"); variables.put("comName","建安公司"); - variables.put("proId","116"); - variables.put("proName","泾河新城"); - variables.put("businessKey",12); + variables.put("proId","133"); + variables.put("proName","泾河新城xxxxxx"); + variables.put("businessKey",50); remoteFlowService.startDefinitionByParams(procDefId,variables,SecurityConstants.INNER); } @@ -991,7 +991,8 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu List signets = basSignetMapper.selectBasSignetList(query); if(StringUtils.isNotEmpty(signets)){ String newFilePath = filePath.replace(".pdf","-g.pdf"); - PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.GROUP_SIGN.getCode()); + String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath); + PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath, SignetKeyEnums.GROUP_SIGN.getCode()); proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile)); proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); } @@ -1019,7 +1020,8 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu List signets = basSignetMapper.selectBasSignetList(query); if(StringUtils.isNotEmpty(signets)){ String newFilePath = filePath.replace(".pdf","-p.pdf"); - PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.PROJECT_SIGN.getCode()); + String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath); + PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath,SignetKeyEnums.PROJECT_SIGN.getCode()); proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile)); proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); } @@ -1036,7 +1038,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id); String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath); ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers(); - userQuery.setWorkType(18L); + userQuery.setWorkType(101L); userQuery.setProjectId(proProjectInfoSubdeptsUsers.getProjectId()); List users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery); if(StringUtils.isNotEmpty(users)){ @@ -1046,19 +1048,27 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu List signets = basSignetMapper.selectBasSignetList(query); if(StringUtils.isNotEmpty(signets)){ String newFilePath = filePath.replace(".pdf","-c.pdf"); - PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.PROJECT_SIGN.getCode()); + String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath); + PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath, SignetKeyEnums.COMPANY_SIGN.getCode()); proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile)); proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); } } } + public static void main(String[] args) { + String path = "D:\\meta\\test.pdf"; + String newPath = path.replace(".pdf","-c.pdf");; + String signPath = "D:\\meta\\sign.png.v1.png"; + PdfImageSignetUtil.imageWaterMark(path, newPath, signPath, SignetKeyEnums.PROJECT_SIGN.getCode()); + } + @Override public Boolean findUserComSign(Long id){ // 审核文件签名 ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id); ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers(); - userQuery.setWorkType(18L); + userQuery.setWorkType(101L); userQuery.setProjectId(proProjectInfoSubdeptsUsers.getProjectId()); List users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery); if(StringUtils.isNotEmpty(users)){ @@ -1117,13 +1127,6 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu return false; } - public static void main(String[] args) { - String path = "D:\\meta\\test.pdf"; - String newPath = path.replace(".pdf","-c.pdf");; - String signPath = "D:\\meta\\sign.png.v1.png"; - PdfImageSignetUtil.imageWaterMark(path, newPath, signPath, SignetKeyEnums.PROJECT_SIGN.getCode()); - } - /** * 封装用户文件参数... * @param proSubdeptsUser 用户对象 diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/utils/pdf/PdfImageSignetUtil.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/utils/pdf/PdfImageSignetUtil.java index 59d27247..4097cda7 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/utils/pdf/PdfImageSignetUtil.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/utils/pdf/PdfImageSignetUtil.java @@ -33,6 +33,7 @@ public class PdfImageSignetUtil { */ public static void imageWaterMark(String templatePath,String targetPath,String imagePath,String keyWord){ log.error("imageWaterMark...PDF...PATH{}:" + templatePath); + log.error("imageWaterMark...NEWPDF...PATH{}:" + targetPath); try { File pdfFile = org.apache.commons.io.FileUtils.getFile(templatePath); byte[] pdfData = new byte[(int) pdfFile.length()]; diff --git a/yanzhu-ui-app/miniprogram/project.private.config.json b/yanzhu-ui-app/miniprogram/project.private.config.json index cef99850..e029e664 100644 --- a/yanzhu-ui-app/miniprogram/project.private.config.json +++ b/yanzhu-ui-app/miniprogram/project.private.config.json @@ -11,7 +11,7 @@ { "name": "pages/project_qr/index", "pathName": "pages/project_qr/index", - "query": "QRPID=132&SIGID=1", + "query": "QRPID=133&SIGID=1", "launchMode": "default", "scene": null }, From 44d498c2dc3a0311f682445ce0490b57278a9981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E7=8E=89=E7=90=A6?= <7507756+jiang_yuqi@user.noreply.gitee.com> Date: Tue, 11 Feb 2025 15:01:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4diamagnetic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yanzhu-bigscreen/public/favicon.ico | Bin 5018 -> 894 bytes .../miniprogram/pages/project_qr/index.js | 223 +++++++++--------- .../miniprogram/pages/project_qr/index.wxml | 2 +- yanzhu-ui-vue3/public/favicon.ico | Bin 5561 -> 894 bytes 4 files changed, 118 insertions(+), 107 deletions(-) diff --git a/yanzhu-bigscreen/public/favicon.ico b/yanzhu-bigscreen/public/favicon.ico index 0908b50141564e06bcfa31436240b8cf32776c5c..d92e0b8c4963f1ae81021bbed63e94c2699dea66 100644 GIT binary patch literal 894 zcmZQzU<5(|0R|u`!H~hsz#zuJz@P!dKp_SNAO?x!2k(<*|Mp73(S^ghaCG}W3micV zd6}gJRR66~2Cn|nK^;8mfr=prt{%vMt3Q887jFKoe=I;N;Of6uAgs8$R~xS7)?Ze* z7G(86jaaP!YD8B5HAMw(#m^dPxRwit(0u_9G`M>FR>0MN^(+15GZl&w=KiVL1wn6T z6kkZ}DT8x=g_XnA|4v>HSO33$3S12u1Fjy#fSC_upeciM zfBAL8wfs)p0oU^X|9`j|GzMHfvK44*kh#ACs}Nd}*5GjrTo*z;*cWhd@)!pg85kNs n7^oeNfqano0bpKwAP>a+3=AJYn4N*)2ax^&6#E0jpkM$1?7KMX literal 5018 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 { if (res.code == 200) { let phoneNumber = res.data; - //使用手机号码查询详情 - if (this.data.userPost == "1") { - findProSubDeptsInfo(this.data.proId, phoneNumber).then(deptRes => { - if (deptRes.code == 200 && deptRes.data) { - deptRes.data.subDeptLeaderPhone = phoneNumber; - if(deptRes.data.proProjectInfoSubdeptsUsers){ - deptRes.data.leaderDegreeGrade = deptRes.data.proProjectInfoSubdeptsUsers.degreeGrade; - deptRes.data.eduFilePath = deptRes.data.proProjectInfoSubdeptsUsers.eduFilePath; - deptRes.data.subStep = deptRes.data.proProjectInfoSubdeptsUsers.subStep; - } - if (deptRes.data.businessLicensePath) { - deptRes.data.businessLicensePath = (this.data.imgBase + deptRes.data.businessLicensePath).split(','); - } - if (deptRes.data.subDeptInfos) { - let subDeptInfosJSON = JSON.parse(deptRes.data.subDeptInfos); - deptRes.data.subDeptInfos = subDeptInfosJSON; - if (deptRes.data.subDeptInfos.legalPersonCardImgPos) { - deptRes.data.subDeptInfos.legalPersonCardImgPos = (this.data.imgBase + deptRes.data.subDeptInfos.legalPersonCardImgPos).split(','); - } - if (deptRes.data.subDeptInfos.legalPersonCardImgInv) { - deptRes.data.subDeptInfos.legalPersonCardImgInv = (this.data.imgBase + deptRes.data.subDeptInfos.legalPersonCardImgInv).split(','); - } - } - if(deptRes.data.proProjectInfoSubdeptsUsers.userInfos){ - let userInfosJSON = JSON.parse(deptRes.data.proProjectInfoSubdeptsUsers.userInfos); - deptRes.data.proProjectInfoSubdeptsUsers.userInfos = userInfosJSON; - if(deptRes.data.proProjectInfoSubdeptsUsers.userInfos.cardImgPos){ - deptRes.data.leaderCardImgPos = (this.data.imgBase + deptRes.data.proProjectInfoSubdeptsUsers.userInfos.cardImgPos).split(','); - } - if(deptRes.data.proProjectInfoSubdeptsUsers.userInfos.cardImgInv){ - deptRes.data.leaderCardImgInv = (this.data.imgBase + deptRes.data.proProjectInfoSubdeptsUsers.userInfos.cardImgInv).split(','); - } - } - if(deptRes.data.proProjectInfoSubdeptsUsers.userPicture){ - deptRes.data.leaderUserPicture = (this.data.imgBase + deptRes.data.proProjectInfoSubdeptsUsers.userPicture).split(','); - } - if (deptRes.data.proProjectInfoSubdeptsUsers.subDeptPowerPath) { - deptRes.data.subDeptLeaderPowerPath = (this.data.imgBase + deptRes.data.proProjectInfoSubdeptsUsers.subDeptPowerPath).split(','); - } - this.setData({ - form: deptRes.data, - userPhoneNumber: phoneNumber, - active: deptRes.data.subStep - }); - if (deptRes.data.proProjectInfoSubdeptsUsers.subStep == 1) { - this.initBusEduVideos(false); - } else if (deptRes.data.proProjectInfoSubdeptsUsers.subStep == 2) { - this.initBusEduQuestion(false); - } else if (deptRes.data.proProjectInfoSubdeptsUsers.subStep == 3) { - this.startSignFile(false); - } - } else { - this.setData({ - userPhoneNumber: phoneNumber, - "form.subDeptLeaderPhone": phoneNumber, - }); - } - }); - } else { - findProSubDeptsUser(this.data.proId, phoneNumber).then(userRes => { - if (userRes.code == 200 && userRes.data) { - if (userRes.data.userInfos) { - let userInfosJSON = JSON.parse(userRes.data.userInfos); - userRes.data.nativePlace = userInfosJSON.nativePlace; - userRes.data.address = userInfosJSON.address; - userRes.data.emergencyContact = userInfosJSON.emergencyContact; - userRes.data.contactPhone = userInfosJSON.contactPhone; - userRes.data.bankName = userInfosJSON.bankName; - userRes.data.bankOffice = userInfosJSON.bankOffice; - userRes.data.bankCardNo = userInfosJSON.bankCardNo; - } - if (userRes.data.cardImgPos) { - userRes.data.cardImgPos = (this.data.imgBase + userRes.data.cardImgPos).split(','); - } - if (userRes.data.cardImgInv) { - userRes.data.cardImgInv = (this.data.imgBase + userRes.data.cardImgInv).split(','); - } - if (userRes.data.userPicture) { - userRes.data.userPicture = (this.data.imgBase + userRes.data.userPicture).split(','); - } - if (userRes.data.subDeptPowerPath) { - userRes.data.subDeptPowerPath = (this.data.imgBase + userRes.data.subDeptPowerPath).split(','); - } - this.setData({ - form: userRes.data, - userPhoneNumber: phoneNumber, - "form.userPhone": phoneNumber, - active: userRes.data.subStep - }); - if (userRes.data.subStep == 1) { - this.initBusEduVideos(false); - } else if (userRes.data.subStep == 2) { - this.initBusEduQuestion(false); - } else if (userRes.data.subStep == 3) { - this.startSignFile(false); - } - } else { - this.setData({ - userPhoneNumber: phoneNumber, - "form.userPhone": phoneNumber, - }); - } - }); - } + this.initData(phoneNumber); } }) } else { @@ -416,6 +313,113 @@ Page({ } }, + initData(phoneNumber){ +//使用手机号码查询详情 +if (this.data.userPost == "1") { + findProSubDeptsInfo(this.data.proId, phoneNumber).then(deptRes => { + if (deptRes.code == 200 && deptRes.data) { + deptRes.data.subDeptLeaderPhone = phoneNumber; + if(deptRes.data.proProjectInfoSubdeptsUsers){ + deptRes.data.leaderDegreeGrade = deptRes.data.proProjectInfoSubdeptsUsers.degreeGrade; + deptRes.data.eduFilePath = deptRes.data.proProjectInfoSubdeptsUsers.eduFilePath; + deptRes.data.subStep = deptRes.data.proProjectInfoSubdeptsUsers.subStep; + } + if (deptRes.data.businessLicensePath) { + deptRes.data.businessLicensePath = (this.data.imgBase + deptRes.data.businessLicensePath).split(','); + } + if (deptRes.data.subDeptInfos) { + let subDeptInfosJSON = JSON.parse(deptRes.data.subDeptInfos); + deptRes.data.subDeptInfos = subDeptInfosJSON; + if (deptRes.data.subDeptInfos.legalPersonCardImgPos) { + deptRes.data.subDeptInfos.legalPersonCardImgPos = (this.data.imgBase + deptRes.data.subDeptInfos.legalPersonCardImgPos).split(','); + } + if (deptRes.data.subDeptInfos.legalPersonCardImgInv) { + deptRes.data.subDeptInfos.legalPersonCardImgInv = (this.data.imgBase + deptRes.data.subDeptInfos.legalPersonCardImgInv).split(','); + } + } + if(deptRes.data.proProjectInfoSubdeptsUsers.userInfos){ + let userInfosJSON = JSON.parse(deptRes.data.proProjectInfoSubdeptsUsers.userInfos); + deptRes.data.proProjectInfoSubdeptsUsers.userInfos = userInfosJSON; + if(deptRes.data.proProjectInfoSubdeptsUsers.userInfos.cardImgPos){ + deptRes.data.leaderCardImgPos = (this.data.imgBase + deptRes.data.proProjectInfoSubdeptsUsers.userInfos.cardImgPos).split(','); + } + if(deptRes.data.proProjectInfoSubdeptsUsers.userInfos.cardImgInv){ + deptRes.data.leaderCardImgInv = (this.data.imgBase + deptRes.data.proProjectInfoSubdeptsUsers.userInfos.cardImgInv).split(','); + } + } + if(deptRes.data.proProjectInfoSubdeptsUsers.userPicture){ + deptRes.data.leaderUserPicture = (this.data.imgBase + deptRes.data.proProjectInfoSubdeptsUsers.userPicture).split(','); + } + if (deptRes.data.proProjectInfoSubdeptsUsers.subDeptPowerPath) { + deptRes.data.subDeptLeaderPowerPath = (this.data.imgBase + deptRes.data.proProjectInfoSubdeptsUsers.subDeptPowerPath).split(','); + } + this.setData({ + form: deptRes.data, + userPhoneNumber: phoneNumber, + active: deptRes.data.subStep + }); + if (deptRes.data.proProjectInfoSubdeptsUsers.subStep == 1) { + this.initBusEduVideos(false); + } else if (deptRes.data.proProjectInfoSubdeptsUsers.subStep == 2) { + this.initBusEduQuestion(false); + } else if (deptRes.data.proProjectInfoSubdeptsUsers.subStep == 3) { + this.startSignFile(false); + } + } else { + this.setData({ + userPhoneNumber: phoneNumber, + "form.subDeptLeaderPhone": phoneNumber, + }); + } + }); +} else { + findProSubDeptsUser(this.data.proId, phoneNumber).then(userRes => { + if (userRes.code == 200 && userRes.data) { + if (userRes.data.userInfos) { + let userInfosJSON = JSON.parse(userRes.data.userInfos); + userRes.data.nativePlace = userInfosJSON.nativePlace; + userRes.data.address = userInfosJSON.address; + userRes.data.emergencyContact = userInfosJSON.emergencyContact; + userRes.data.contactPhone = userInfosJSON.contactPhone; + userRes.data.bankName = userInfosJSON.bankName; + userRes.data.bankOffice = userInfosJSON.bankOffice; + userRes.data.bankCardNo = userInfosJSON.bankCardNo; + } + if (userRes.data.cardImgPos) { + userRes.data.cardImgPos = (this.data.imgBase + userRes.data.cardImgPos).split(','); + } + if (userRes.data.cardImgInv) { + userRes.data.cardImgInv = (this.data.imgBase + userRes.data.cardImgInv).split(','); + } + if (userRes.data.userPicture) { + userRes.data.userPicture = (this.data.imgBase + userRes.data.userPicture).split(','); + } + if (userRes.data.subDeptPowerPath) { + userRes.data.subDeptPowerPath = (this.data.imgBase + userRes.data.subDeptPowerPath).split(','); + } + this.setData({ + form: userRes.data, + userPhoneNumber: phoneNumber, + "form.userPhone": phoneNumber, + active: userRes.data.subStep + }); + if (userRes.data.subStep == 1) { + this.initBusEduVideos(false); + } else if (userRes.data.subStep == 2) { + this.initBusEduQuestion(false); + } else if (userRes.data.subStep == 3) { + this.startSignFile(false); + } + } else { + this.setData({ + userPhoneNumber: phoneNumber, + "form.userPhone": phoneNumber, + }); + } + }); +} + }, + /** * 初始化学习视频 */ @@ -670,6 +674,13 @@ Page({ }); }, + /** + * 签名.. + */ + startSignFile_0(){ + this.initData(this.data.userPhoneNumber); + }, + /** * 开始签署文件 * @param {*} skip @@ -677,8 +688,8 @@ Page({ startSignFile(skip) { let _fileForm = {}; let currDate = new Date().toLocaleString().substring(0, 10).split("/"); - currDate[2] = currDate[2].replace("上午","").replace("下午",""); - if (this.data.userPost == 1) { + currDate[2] = currDate[2].replace("上","").replace("下","").replace("午",""); + if (this.data.form.userPost == 1) { _fileForm.fName = this.data.form.subDeptLeaderName; _fileForm.fCardId = this.data.form.subDeptLeaderCode; _fileForm.fSex = this.getGenderFromIdCard(this.data.form.subDeptLeaderCode); diff --git a/yanzhu-ui-app/miniprogram/pages/project_qr/index.wxml b/yanzhu-ui-app/miniprogram/pages/project_qr/index.wxml index bdffb60b..f76e5991 100644 --- a/yanzhu-ui-app/miniprogram/pages/project_qr/index.wxml +++ b/yanzhu-ui-app/miniprogram/pages/project_qr/index.wxml @@ -688,7 +688,7 @@ - +