diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteProService.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteProService.java index 3416af3f..69d7987e 100644 --- a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteProService.java +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/RemoteProService.java @@ -71,6 +71,36 @@ public interface RemoteProService @GetMapping("/proProjectInfoSubdeptsUsers/subDeptsUserGroSign/{busKey}") public R subDeptsUserGroSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 查询公司安全承诺书文件签名章 + * + * @param busKey 业务主键 + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/proProjectInfoSubdeptsUsers/findUserComSign/{busKey}") + public R findUserComSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 查询项目安全承诺书文件签名章 + * + * @param busKey 业务主键 + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/proProjectInfoSubdeptsUsers/findUserProSign/{busKey}") + public R findUserProSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 查询班组安全承诺书文件签名章 + * + * @param busKey 业务主键 + * @param source 请求来源 + * @return 结果 + */ + @GetMapping("/proProjectInfoSubdeptsUsers/findUserGroSign/{busKey}") + public R findUserGroSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** * 系统人员添加修改信息同步 * diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteProFallbackFactory.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteProFallbackFactory.java index a4e674a6..51400c4c 100644 --- a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteProFallbackFactory.java +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/factory/RemoteProFallbackFactory.java @@ -50,6 +50,24 @@ public class RemoteProFallbackFactory implements FallbackFactory findUserGroSign(Long busKey, String source) + { + return R.fail("班组承诺书签名章失败:" + throwable.getMessage()); + } + + @Override + public R findUserComSign(Long busKey, String source) + { + return R.fail("公司承诺书签名章失败:" + throwable.getMessage()); + } + + @Override + public R findUserProSign(Long busKey, String source) + { + return R.fail("项目承诺书签名章失败:" + throwable.getMessage()); + } + @Override public R subDeptsUserGroSign(Long busKey, String source) { 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 87764930..ed3eb024 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 @@ -6,7 +6,10 @@ import com.alibaba.fastjson2.JSON; 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.exception.ServiceException; import com.yanzhu.common.core.exception.base.BaseException; +import com.yanzhu.common.core.text.Convert; import com.yanzhu.common.core.web.domain.AjaxResult; import com.yanzhu.common.redis.service.RedisService; import com.yanzhu.common.security.utils.SecurityUtils; @@ -30,6 +33,7 @@ import com.yanzhu.flowable.service.IFlowTaskService; import com.yanzhu.flowable.service.ISysDeployFormService; import com.yanzhu.flowable.service.ISysFormService; import com.yanzhu.flowable.util.WorkflowUtil; +import com.yanzhu.system.api.RemoteProService; import com.yanzhu.system.api.domain.SysRole; import com.yanzhu.system.api.domain.SysUser; import lombok.extern.slf4j.Slf4j; @@ -87,6 +91,9 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask @Resource private ISysFormService sysFormService; + @Resource + private RemoteProService remoteProService; + @Resource private RemoteSystemService remoteSystemService; @@ -106,6 +113,24 @@ 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(); + if(!vis){ + throw new ServiceException("未查询到三级安全教育主管签名信息..."); + } + } + if(task.getName().indexOf("安质部")>-1){ + Boolean vis = remoteProService.findUserGroSign(Convert.toLong(task.getCaseVariables().get("businessKey")), SecurityConstants.INNER).getData(); + if(!vis){ + throw new ServiceException("未查询到安质部部长签名信息..."); + } + } + if(task.getName().indexOf("班组")>-1){ + Boolean vis = remoteProService.findUserGroSign(Convert.toLong(task.getCaseVariables().get("businessKey")), SecurityConstants.INNER).getData(); + if(!vis){ + throw new ServiceException("未查询到班组长签名信息..."); + } + } if (DelegationState.PENDING.equals(task.getDelegationState())) { taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment()); taskService.resolveTask(taskVo.getTaskId(), taskVo.getVariables()); @@ -113,7 +138,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask if(StringUtils.isNotEmpty(taskVo.getComment())){ taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.NORMAL.getType(), taskVo.getComment()); }else{ - taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.NORMAL.getType(), taskVo.getAssignee()+"重新提交流程申请!!"); + taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.NORMAL.getType(), taskVo.getAssignee()+"提交流程申请!!"); } taskService.setAssignee(taskVo.getTaskId(), userId); taskService.complete(taskVo.getTaskId(), taskVo.getVariables()); diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java index 42492fbe..6aa4d322 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java @@ -192,6 +192,36 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController return R.ok(AjaxResult.success()); } + /** + * 公司安全承诺书文件签名章 + */ + @InnerAuth + @GetMapping("/findUserComSign/{busKey}") + public R findUserComSign(@PathVariable("busKey") Long busKey) + { + return R.ok(proProjectInfoSubdeptsUsersService.findUserComSign(busKey)); + } + + /** + * 项目安全承诺书文件签名章 + */ + @InnerAuth + @GetMapping("/findUserProSign/{busKey}") + public R findUserProSign(@PathVariable("busKey") Long busKey) + { + return R.ok(proProjectInfoSubdeptsUsersService.findUserProSign(busKey)); + } + + /** + * 班组安全承诺书文件签名章 + */ + @InnerAuth + @GetMapping("/findUserGroSign/{busKey}") + public R findUserGroSign(@PathVariable("busKey") Long busKey) + { + return R.ok(proProjectInfoSubdeptsUsersService.findUserGroSign(busKey)); + } + /** * 修改人员进场状态 * @param ids 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 c73bdb33..0c90198e 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,5 +1,6 @@ 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; @@ -165,4 +166,10 @@ public interface IProProjectInfoSubdeptsUsersService * @return 结果 */ int editDefaultProjectById(Long id); + + Boolean findUserComSign(Long id); + + Boolean findUserProSign(Long id); + + Boolean findUserGroSign(Long id); } 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 822a2bee..0c84629e 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 @@ -505,6 +505,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu throw new ServiceException("用户信息异常...请重新扫码"); } + proProjectInfoSubdeptsUsers.setComId(parUsers.getComId()); proProjectInfoSubdeptsUsers.setProjectId(parUsers.getProjectId()); proProjectInfoSubdeptsUsers.setSubDeptId(parUsers.getSubDeptId()); @@ -539,6 +540,40 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode()); proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.XMJL.getCode()); sysUser.setUserType(UserTypeEnums.FBXMJL.getCode()); + + // 设置特殊工种班组 + ProProjectInfoSubdeptsGroup GroupQuery = new ProProjectInfoSubdeptsGroup(); + GroupQuery.setProjectId(parUsers.getProjectId()); + GroupQuery.setSubDeptId(parUsers.getSubDeptId()); + GroupQuery.setGroupCode(DeptGroupEnums.SPECIAL.getCode()); + List specialGroups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query); + + if(Objects.nonNull(specialGroups) && specialGroups.size()>0){ + ProProjectInfoSubdeptsGroup specialGroup = specialGroups.get(0); + specialGroup.setGroupLeaderName(proProjectInfoSubdeptsUsers.getUserName()); + specialGroup.setGroupLeaderCode(proProjectInfoSubdeptsUsers.getCardCode()); + specialGroup.setGroupLeaderPhone(proProjectInfoSubdeptsUsers.getUserPhone()); + proProjectInfoSubdeptsGroupMapper.updateProProjectInfoSubdeptsGroup(specialGroup); + }else{ + ProProjectInfoSubdeptsGroup specialGroup = new ProProjectInfoSubdeptsGroup(); + specialGroup.setComId(proProjectInfoSubdeptsUsers.getComId()); + specialGroup.setProjectId(proProjectInfoSubdeptsUsers.getProjectId()); + specialGroup.setSubDeptId(proProjectInfoSubdeptsUsers.getSubDeptId()); + specialGroup.setSubDeptName(proProjectInfoSubdeptsUsers.getSubDeptName()); + specialGroup.setSubDeptType(proProjectInfoSubdeptsUsers.getSubDeptType()); + specialGroup.setGroupCode(DeptGroupEnums.SPECIAL.getCode()); + specialGroup.setGroupName(DeptGroupEnums.SPECIAL.getInfo()); + specialGroup.setCraftType(CraftTypeEnums.TSGZ.getCode()); + specialGroup.setGroupLeaderName(proProjectInfoSubdeptsUsers.getUserName()); + specialGroup.setGroupLeaderCode(proProjectInfoSubdeptsUsers.getCardCode()); + specialGroup.setGroupLeaderPhone(proProjectInfoSubdeptsUsers.getUserPhone()); + specialGroup.setUseStatus(UseStateEnums.AW.getCode()); + specialGroup.setApproveStatus(ApproveStatus.await.getCode()); + specialGroup.setCreateBy(DataSourceEnuns.APP.getInfo()); + specialGroup.setCreateTime(DateUtils.getNowDate()); + proProjectInfoSubdeptsGroupMapper.insertProProjectInfoSubdeptsGroup(specialGroup); + } + }else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.BZZ.getCode())){ ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup(); query.setProjectId(proProjectInfoSubdeptsUsers.getProjectId()); @@ -623,6 +658,8 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName()); } + proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode()); + proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.CLZY.getCode()); sysUser.setUserType(UserTypeEnums.FBCLRY.getCode()); }else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.AQRY.getCode())){ //查询管理班组 @@ -637,7 +674,22 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName()); } + proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode()); + proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.AQZY.getCode()); sysUser.setUserType(UserTypeEnums.FBAQRY.getCode()); + }else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.TSGZ.getCode())){ + // 查询特殊工种绑定班组信息 + ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup(); + query.setProjectId(parUsers.getProjectId()); + query.setSubDeptId(parUsers.getSubDeptId()); + query.setGroupCode(DeptGroupEnums.SPECIAL.getCode()); + List groups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query); + + if(Objects.nonNull(groups) && groups.size()>0){ + proProjectInfoSubdeptsUsers.setSubDeptGroup(groups.get(0).getId()); + proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName()); + } + sysUser.setUserType(UserTypeEnums.FBLWRY.getCode()); }else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.LWGR.getCode())){ // 劳务人员绑定班组信息 proProjectInfoSubdeptsUsers.setSubDeptGroup(parUsers.getSubDeptGroup()); @@ -838,6 +890,9 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(),UserPostEnums.WTDL.getCode())){ ProProjectInfoSubdepts proProjectInfoSubdepts = proProjectInfoSubdeptsMapper.selectProProjectInfoSubdeptsById(proProjectInfoSubdeptsUsers.getSubDeptId()); proProjectInfoSubdepts.setApproveStatus(ApproveStatus.exempt.getCode()); + if(Objects.isNull(proProjectInfoSubdepts.getUseStatus()) && Objects.equals(proProjectInfoSubdepts.getUseStatus(),UseStateEnums.AW.getCode())){ + proProjectInfoSubdepts.setUseStatus(UseStateEnums.IN.getCode()); + } // 生成二维码 try { String accessToken = wxMaService.getAccessToken(); @@ -855,6 +910,21 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu } proProjectInfoSubdeptsMapper.updateProProjectInfoSubdepts(proProjectInfoSubdepts); }else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(),UserPostEnums.XMJL.getCode())){ + // 查询特殊工种绑定班组信息 + ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup(); + query.setProjectId(proProjectInfoSubdeptsUsers.getProjectId()); + query.setSubDeptId(proProjectInfoSubdeptsUsers.getSubDeptId()); + query.setGroupCode(DeptGroupEnums.SPECIAL.getCode()); + List groups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query); + + if(Objects.nonNull(groups) && groups.size()>0){ + ProProjectInfoSubdeptsGroup specialGroup = groups.get(0); + specialGroup.setApproveStatus(ApproveStatus.exempt.getCode()); + if(Objects.isNull(specialGroup.getUseStatus()) && Objects.equals(specialGroup.getUseStatus(),UseStateEnums.AW.getCode())){ + specialGroup.setUseStatus(UseStateEnums.IN.getCode()); + } + proProjectInfoSubdeptsGroupMapper.updateProProjectInfoSubdeptsGroup(specialGroup); + } try { String accessToken = wxMaService.getAccessToken(); String filePath = DateUtils.datePath()+"/"+System.currentTimeMillis()+".png"; @@ -871,6 +941,9 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu }else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(),UserPostEnums.BZZ.getCode())){ ProProjectInfoSubdeptsGroup proProjectInfoSubdeptsGroup = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupById(proProjectInfoSubdeptsUsers.getSubDeptGroup()); proProjectInfoSubdeptsGroup.setApproveStatus(ApproveStatus.exempt.getCode()); + if(Objects.isNull(proProjectInfoSubdeptsGroup.getUseStatus()) && Objects.equals(proProjectInfoSubdeptsGroup.getUseStatus(),UseStateEnums.AW.getCode())){ + proProjectInfoSubdeptsGroup.setUseStatus(UseStateEnums.IN.getCode()); + } proProjectInfoSubdeptsGroupMapper.updateProProjectInfoSubdeptsGroup(proProjectInfoSubdeptsGroup); try { String accessToken = wxMaService.getAccessToken(); @@ -980,6 +1053,70 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu } } + @Override + public Boolean findUserComSign(Long id){ + // 审核文件签名 + ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id); + ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers(); + userQuery.setWorkType(18L); + userQuery.setProjectId(proProjectInfoSubdeptsUsers.getProjectId()); + List users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery); + if(StringUtils.isNotEmpty(users)){ + BasSignet query = new BasSignet(); + query.setProjectId(users.get(0).getProjectId()); + query.setUserId(users.get(0).getUserId()); + List signets = basSignetMapper.selectBasSignetList(query); + if(StringUtils.isNotEmpty(signets)){ + return true; + } + } + return false; + } + + @Override + public Boolean findUserProSign(Long id){ + ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id); + ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers(); + userQuery.setWorkType(18L); + userQuery.setProjectId(proProjectInfoSubdeptsUsers.getProjectId()); + List users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery); + if(StringUtils.isNotEmpty(users)){ + BasSignet query = new BasSignet(); + query.setProjectId(users.get(0).getProjectId()); + query.setUserId(users.get(0).getUserId()); + List signets = basSignetMapper.selectBasSignetList(query); + if(StringUtils.isNotEmpty(signets)){ + return true; + } + } + return false; + } + + @Override + public Boolean findUserGroSign(Long id){ + ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id); + // 查询班组长签名 + if(proProjectInfoSubdeptsUsers.getSubDeptGroup()!=null){ + ProProjectInfoSubdeptsGroup group = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupById(proProjectInfoSubdeptsUsers.getSubDeptGroup()); + if(group!=null && StringUtils.isNotEmpty(group.getGroupLeaderPhone())){ + ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers(); + userQuery.setUserPhone(group.getGroupLeaderPhone()); + userQuery.setProjectId(group.getProjectId()); + List users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery); + if(StringUtils.isNotEmpty(users)){ + BasSignet query = new BasSignet(); + query.setProjectId(users.get(0).getProjectId()); + query.setUserId(users.get(0).getUserId()); + List signets = basSignetMapper.selectBasSignetList(query); + if(StringUtils.isNotEmpty(signets)){ + return true; + } + } + } + } + return false; + } + public static void main(String[] args) { String path = "D:\\meta\\test.pdf"; String newPath = path.replace(".pdf","-c.pdf");;