提交代码

dev_xd
姜玉琦 2025-02-10 00:29:56 +08:00
parent acb89e5bc1
commit a38dfefa84
6 changed files with 248 additions and 1 deletions

View File

@ -71,6 +71,36 @@ public interface RemoteProService
@GetMapping("/proProjectInfoSubdeptsUsers/subDeptsUserGroSign/{busKey}")
public R<AjaxResult> subDeptsUserGroSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*
* @param busKey
* @param source
* @return
*/
@GetMapping("/proProjectInfoSubdeptsUsers/findUserComSign/{busKey}")
public R<Boolean> findUserComSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*
* @param busKey
* @param source
* @return
*/
@GetMapping("/proProjectInfoSubdeptsUsers/findUserProSign/{busKey}")
public R<Boolean> findUserProSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*
* @param busKey
* @param source
* @return
*/
@GetMapping("/proProjectInfoSubdeptsUsers/findUserGroSign/{busKey}")
public R<Boolean> findUserGroSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*

View File

@ -50,6 +50,24 @@ public class RemoteProFallbackFactory implements FallbackFactory<RemoteProServic
return R.fail("项目承诺书签名章失败:" + throwable.getMessage());
}
@Override
public R<Boolean> findUserGroSign(Long busKey, String source)
{
return R.fail("班组承诺书签名章失败:" + throwable.getMessage());
}
@Override
public R<Boolean> findUserComSign(Long busKey, String source)
{
return R.fail("公司承诺书签名章失败:" + throwable.getMessage());
}
@Override
public R<Boolean> findUserProSign(Long busKey, String source)
{
return R.fail("项目承诺书签名章失败:" + throwable.getMessage());
}
@Override
public R<AjaxResult> subDeptsUserGroSign(Long busKey, String source)
{

View File

@ -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());

View File

@ -192,6 +192,36 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController
return R.ok(AjaxResult.success());
}
/**
*
*/
@InnerAuth
@GetMapping("/findUserComSign/{busKey}")
public R<Boolean> findUserComSign(@PathVariable("busKey") Long busKey)
{
return R.ok(proProjectInfoSubdeptsUsersService.findUserComSign(busKey));
}
/**
*
*/
@InnerAuth
@GetMapping("/findUserProSign/{busKey}")
public R<Boolean> findUserProSign(@PathVariable("busKey") Long busKey)
{
return R.ok(proProjectInfoSubdeptsUsersService.findUserProSign(busKey));
}
/**
*
*/
@InnerAuth
@GetMapping("/findUserGroSign/{busKey}")
public R<Boolean> findUserGroSign(@PathVariable("busKey") Long busKey)
{
return R.ok(proProjectInfoSubdeptsUsersService.findUserGroSign(busKey));
}
/**
*
* @param ids

View File

@ -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);
}

View File

@ -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<ProProjectInfoSubdeptsGroup> 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<ProProjectInfoSubdeptsGroup> 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<ProProjectInfoSubdeptsGroup> 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<ProProjectInfoSubdeptsUsers> 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<BasSignet> 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<ProProjectInfoSubdeptsUsers> 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<BasSignet> 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<ProProjectInfoSubdeptsUsers> 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<BasSignet> 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");;