提交代码

dev_xd
姜玉琦 2025-02-22 18:09:44 +08:00
parent 98abe2de96
commit 76d3f1513b
23 changed files with 250 additions and 61 deletions

View File

@ -19,6 +19,9 @@ public class SysDept extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 项目单位... */
public static final String XMDW = "4";
/** 部门ID */ /** 部门ID */
private Long deptId; private Long deptId;

View File

@ -5,8 +5,9 @@ package com.yanzhu.common.core.enums;
*/ */
public enum UserTypeEnums { public enum UserTypeEnums {
ZSRY("00", "正式人员","key"), XTRY("00", "正式人员","key"),
LSRY("08", "临时人员","key"), XMRY("08", "项目人员","key"),
QTRY("99", "其它人员","key"),
FBWTDL("80", "分包代理人","fbwtdl"), FBWTDL("80", "分包代理人","fbwtdl"),
FBXMJL("79", "分包项目经理","fbxmjl"), FBXMJL("79", "分包项目经理","fbxmjl"),
FBBZZZ("78", "分包班组组长","fbbzzz"), FBBZZZ("78", "分包班组组长","fbbzzz"),

View File

@ -20,6 +20,9 @@ public class FlowTaskVo {
@ApiModelProperty("任务Id") @ApiModelProperty("任务Id")
private String taskId; private String taskId;
@ApiModelProperty("任务Id")
private List<String> taskIds;
@ApiModelProperty("用户Id") @ApiModelProperty("用户Id")
private String userId; private String userId;
@ -29,6 +32,9 @@ public class FlowTaskVo {
@ApiModelProperty("流程实例Id") @ApiModelProperty("流程实例Id")
private String instanceId; private String instanceId;
@ApiModelProperty("流程实例Id")
private List<String> instanceIds;
@ApiModelProperty("节点") @ApiModelProperty("节点")
private String targetKey; private String targetKey;

View File

@ -5,6 +5,7 @@ import com.yanzhu.common.core.annotation.Excel;
import com.yanzhu.common.core.web.domain.BaseEntity; import com.yanzhu.common.core.web.domain.BaseEntity;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* pro_project_info_subdepts_users * pro_project_info_subdepts_users

View File

@ -96,6 +96,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userPhone != null and userPhone != ''"> and psu.user_phone = #{userPhone}</if> <if test="userPhone != null and userPhone != ''"> and psu.user_phone = #{userPhone}</if>
<if test='activeTags == "finished"'> and psu.approve_status <![CDATA[ >= ]]> 100 </if> <if test='activeTags == "finished"'> and psu.approve_status <![CDATA[ >= ]]> 100 </if>
<if test="isDel != null "> and psu.is_del = #{isDel}</if> <if test="isDel != null "> and psu.is_del = #{isDel}</if>
<if test='searchValue == "active1"'> and psu.user_post != '66' </if>
<if test="params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''"> and date(psu.use_date) between #{params.beginTime} and #{params.endTime}</if> <if test="params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''"> and date(psu.use_date) between #{params.beginTime} and #{params.endTime}</if>
and psu.is_del != 2 and psu.is_del != 2
</where> </where>

View File

@ -81,7 +81,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_ext ex on u.user_id=ex.user_id left join sys_user_ext ex on u.user_id=ex.user_id
where u.del_flag = '0' and u.remark is null where u.del_flag = '0' and ex.user_type != '99'
<if test="userId != null and userId != 0"> <if test="userId != null and userId != 0">
AND u.user_id = #{userId} AND u.user_id = #{userId}
</if> </if>

View File

@ -107,6 +107,20 @@ public class FlowTaskController extends BaseController {
return flowTaskService.complete(flowTaskVo); return flowTaskService.complete(flowTaskVo);
} }
@ApiOperation(value = "批量审批任务")
@Log(title = "批量审批任务", businessType = BusinessType.UPDATE)
@PostMapping(value = "/batchComplete")
public AjaxResult batchComplete(@RequestBody FlowTaskVo flowTaskVo) {
for(int i=0;i<flowTaskVo.getInstanceIds().size();i++){
FlowTaskVo taskVo = new FlowTaskVo();
taskVo.setTaskId(flowTaskVo.getTaskIds().get(i));
taskVo.setInstanceId(flowTaskVo.getInstanceIds().get(i));
taskVo.setComment("审核通过");
flowTaskService.complete(taskVo);
}
return success();
}
@ApiOperation(value = "驳回任务") @ApiOperation(value = "驳回任务")
@Log(title = "驳回任务", businessType = BusinessType.UPDATE) @Log(title = "驳回任务", businessType = BusinessType.UPDATE)
@PostMapping(value = "/reject") @PostMapping(value = "/reject")

View File

@ -1025,9 +1025,16 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
if(StringUtils.isNotEmpty(signets)){ if(StringUtils.isNotEmpty(signets)){
String newFilePath = filePath.replace(".pdf","-g.pdf"); String newFilePath = filePath.replace(".pdf","-g.pdf");
String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath); String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath, SignetKeyEnums.GROUP_SIGN.getCode()); boolean flag = false;
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile)); try {
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); flag = PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath, SignetKeyEnums.GROUP_SIGN.getCode());
}catch (Exception e){
e.printStackTrace();
}
if(flag){
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile));
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
}
} }
} }
} }
@ -1054,9 +1061,16 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
if(StringUtils.isNotEmpty(signets)){ if(StringUtils.isNotEmpty(signets)){
String newFilePath = filePath.replace(".pdf","-p.pdf"); String newFilePath = filePath.replace(".pdf","-p.pdf");
String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath); String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath,SignetKeyEnums.PROJECT_SIGN.getCode()); boolean flag = false;
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile)); try {
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); flag = PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath,SignetKeyEnums.PROJECT_SIGN.getCode());
}catch (Exception e){
e.printStackTrace();
}
if(flag){
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile));
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
}
} }
} }
} }
@ -1082,9 +1096,16 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
if(StringUtils.isNotEmpty(signets)){ if(StringUtils.isNotEmpty(signets)){
String newFilePath = filePath.replace(".pdf","-c.pdf"); String newFilePath = filePath.replace(".pdf","-c.pdf");
String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath); String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath, SignetKeyEnums.COMPANY_SIGN.getCode()); boolean flag = false;
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile)); try {
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); flag = PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath, SignetKeyEnums.COMPANY_SIGN.getCode());
}catch (Exception e){
e.printStackTrace();
}
if(flag){
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile));
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
}
} }
} }
} }
@ -1292,7 +1313,12 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
if(StringUtils.isNotEmpty(signets)){ if(StringUtils.isNotEmpty(signets)){
String newFilePath = filePath.replace(".pdf","-g.pdf"); String newFilePath = filePath.replace(".pdf","-g.pdf");
String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath); String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
boolean flag = PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath, SignetKeyEnums.GROUP_SIGN.getCode()); boolean flag = false;
try {
flag = PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath, SignetKeyEnums.GROUP_SIGN.getCode());
}catch (Exception e){
e.printStackTrace();
}
if(flag){ if(flag){
filePath = newFilePath; filePath = newFilePath;
} }
@ -1322,7 +1348,12 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
if(StringUtils.isNotEmpty(signets)){ if(StringUtils.isNotEmpty(signets)){
String newFilePath = filePath.replace(".pdf","-p.pdf"); String newFilePath = filePath.replace(".pdf","-p.pdf");
String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath); String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
boolean flag = PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath,SignetKeyEnums.PROJECT_SIGN.getCode()); boolean flag = false;
try {
flag = PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath,SignetKeyEnums.PROJECT_SIGN.getCode());
}catch (Exception e){
e.printStackTrace();
}
if(flag){ if(flag){
filePath = newFilePath; filePath = newFilePath;
} }
@ -1345,9 +1376,16 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
if(StringUtils.isNotEmpty(signets)){ if(StringUtils.isNotEmpty(signets)){
String newFilePath = filePath.replace(".pdf","-c.pdf"); String newFilePath = filePath.replace(".pdf","-c.pdf");
String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath); String signPath = signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath, SignetKeyEnums.COMPANY_SIGN.getCode()); boolean flag = false;
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile)); try {
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); flag = PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signPath, SignetKeyEnums.COMPANY_SIGN.getCode());
}catch (Exception e){
e.printStackTrace();
}
if(flag){
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile));
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
}
}else{ }else{
throw new ServiceException("未查询三级安全教育主管签名信息..."); throw new ServiceException("未查询三级安全教育主管签名信息...");
} }

View File

@ -238,7 +238,7 @@ public class SysUserController extends BaseController {
@PostMapping("/register") @PostMapping("/register")
public R<Long> register(@RequestBody SysUser sysUser) { public R<Long> register(@RequestBody SysUser sysUser) {
String username = sysUser.getUserName(); String username = sysUser.getUserName();
if (Objects.isNull(sysUser.getUserType()) || Objects.equals(UserTypeEnums.ZSRY.getCode(), sysUser.getUserType())) { if (Objects.isNull(sysUser.getUserType()) || Objects.equals(UserTypeEnums.XTRY.getCode(), sysUser.getUserType()) || Objects.equals(UserTypeEnums.XMRY.getCode(), sysUser.getUserType())) {
if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) {
return R.fail("当前系统没有开启注册功能!"); return R.fail("当前系统没有开启注册功能!");
} }

View File

@ -1,28 +1,31 @@
package com.yanzhu.system.service.impl; package com.yanzhu.system.service.impl;
import java.util.*;
import java.util.stream.Collectors;
import javax.validation.Validator;
import com.yanzhu.common.core.constant.SecurityConstants; import com.yanzhu.common.core.constant.SecurityConstants;
import com.yanzhu.common.core.constant.UserConstants;
import com.yanzhu.common.core.domain.R; import com.yanzhu.common.core.domain.R;
import com.yanzhu.common.core.enums.ShiFouEnums; import com.yanzhu.common.core.enums.ShiFouEnums;
import com.yanzhu.common.core.enums.UserTypeEnums; import com.yanzhu.common.core.enums.UserTypeEnums;
import com.yanzhu.common.core.exception.ServiceException;
import com.yanzhu.common.core.text.Convert; import com.yanzhu.common.core.text.Convert;
import com.yanzhu.common.core.utils.DateUtils; import com.yanzhu.common.core.utils.DateUtils;
import com.yanzhu.common.core.utils.SpringUtils;
import com.yanzhu.common.core.utils.StringUtils;
import com.yanzhu.common.core.utils.bean.BeanValidators;
import com.yanzhu.common.core.web.domain.AjaxResult; import com.yanzhu.common.core.web.domain.AjaxResult;
import com.yanzhu.common.datascope.annotation.DataScope;
import com.yanzhu.common.redis.service.RedisService; import com.yanzhu.common.redis.service.RedisService;
import com.yanzhu.common.security.service.TokenService; import com.yanzhu.common.security.service.TokenService;
import com.yanzhu.common.security.utils.SecurityUtils;
import com.yanzhu.manage.domain.ProProjectInfo; import com.yanzhu.manage.domain.ProProjectInfo;
import com.yanzhu.manage.mapper.ProProjectInfoMapper; import com.yanzhu.manage.mapper.ProProjectInfoMapper;
import com.yanzhu.manage.mapper.ProProjectInfoSubdeptsUsersMapper;
import com.yanzhu.system.api.RemoteProService; import com.yanzhu.system.api.RemoteProService;
import com.yanzhu.system.api.RemoteUserService;
import com.yanzhu.system.api.domain.*; import com.yanzhu.system.api.domain.*;
import com.yanzhu.system.api.model.LoginUser; import com.yanzhu.system.api.model.LoginUser;
import com.yanzhu.system.domain.*; import com.yanzhu.system.domain.*;
import com.yanzhu.system.mapper.*; import com.yanzhu.system.mapper.*;
import com.yanzhu.system.service.ISysConfigService;
import com.yanzhu.system.service.ISysUserExtService; import com.yanzhu.system.service.ISysUserExtService;
import com.yanzhu.system.service.ISysUserService;
import com.yanzhu.system.vo.AlertUserPassVo; import com.yanzhu.system.vo.AlertUserPassVo;
import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
@ -33,15 +36,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import com.yanzhu.common.core.constant.UserConstants;
import com.yanzhu.common.core.exception.ServiceException; import javax.validation.Validator;
import com.yanzhu.common.core.utils.SpringUtils; import java.util.*;
import com.yanzhu.common.core.utils.StringUtils; import java.util.stream.Collectors;
import com.yanzhu.common.core.utils.bean.BeanValidators;
import com.yanzhu.common.datascope.annotation.DataScope;
import com.yanzhu.common.security.utils.SecurityUtils;
import com.yanzhu.system.service.ISysConfigService;
import com.yanzhu.system.service.ISysUserService;
/** /**
* *
@ -88,6 +86,7 @@ public class SysUserServiceImpl implements ISysUserService
@Autowired @Autowired
private ISysUserExtService userExtService; private ISysUserExtService userExtService;
@Autowired @Autowired
private SysUserComMapper userComMapper; private SysUserComMapper userComMapper;
@ -366,7 +365,7 @@ public class SysUserServiceImpl implements ISysUserService
SysUserExt where=new SysUserExt(); SysUserExt where=new SysUserExt();
where.setUserId(sysUser.getUserId()); where.setUserId(sysUser.getUserId());
where.setProjectId(user.getDeptId()); where.setProjectId(user.getDeptId());
List<SysUserExt> userExts=userExtService.selectSysUserExtList(where); userExtService.selectSysUserExtList(where);
user.setUserId(sysUser.getUserId()); user.setUserId(sysUser.getUserId());
user.setIsActive(0l); user.setIsActive(0l);
@ -392,7 +391,7 @@ public class SysUserServiceImpl implements ISysUserService
user.setCreateBy(user.getUpdateBy()); user.setCreateBy(user.getUpdateBy());
user.setCreateTime(user.getUpdateTime()); user.setCreateTime(user.getUpdateTime());
if(StringUtils.isBlank(user.getUserType())) { if(StringUtils.isBlank(user.getUserType())) {
user.setUserType("99"); user.setUserType(UserTypeEnums.XTRY.getCode());
} }
rows=userMapper.insertUser(user); rows=userMapper.insertUser(user);
user.setIsActive(1l); user.setIsActive(1l);
@ -457,6 +456,7 @@ public class SysUserServiceImpl implements ISysUserService
if(Objects.nonNull(sysUser)){ if(Objects.nonNull(sysUser)){
user.setUserId(sysUser.getUserId()); user.setUserId(sysUser.getUserId());
sysUser.setUserName(user.getUserName()); sysUser.setUserName(user.getUserName());
sysUser.setUserType(UserTypeEnums.QTRY.getCode());
sysUser.setPhonenumber(user.getUserName()); sysUser.setPhonenumber(user.getUserName());
sysUser.setNickName(user.getNickName()); sysUser.setNickName(user.getNickName());
sysUser.setUpdateBy(user.getUpdateBy()); sysUser.setUpdateBy(user.getUpdateBy());
@ -464,9 +464,9 @@ public class SysUserServiceImpl implements ISysUserService
sysUser.setPassword(user.getPassword()); sysUser.setPassword(user.getPassword());
userMapper.updateUser(sysUser); userMapper.updateUser(sysUser);
}else{ }else{
user.setUserType(UserTypeEnums.QTRY.getCode());
user.setCreateBy(user.getUpdateBy()); user.setCreateBy(user.getUpdateBy());
user.setCreateTime(user.getUpdateTime()); user.setCreateTime(user.getUpdateTime());
user.setUserType("99");
user.setWorkType(user.getWorkType()); user.setWorkType(user.getWorkType());
userMapper.insertUser(user); userMapper.insertUser(user);
try { try {
@ -497,14 +497,14 @@ public class SysUserServiceImpl implements ISysUserService
SysUserExt where=new SysUserExt(); SysUserExt where=new SysUserExt();
where.setUserId(user.getUserId()); where.setUserId(user.getUserId());
where.setComId(user.getComId()); where.setComId(user.getComId());
where.setWorkType(user.getWorkType()); where.setUserType(UserTypeEnums.QTRY.getCode());
List<SysUserExt> userExts=userExtService.selectSysUserExtList(where); List<SysUserExt> userExts=userExtService.selectSysUserExtList(where);
if(userExts.size()==0){ if(userExts.size()==0){
where.setIsActive(1l); where.setIsActive(1l);
where.setProjectId(user.getDeptId()); where.setProjectId(user.getDeptId());
userExtService.insertSysUserExt(where); userExtService.insertSysUserExt(where);
}else{ }else{
long cnt= userExts.stream().filter(d->d.getProjectId().equals(user.getDeptId())).count(); long cnt = userExts.stream().filter(d->d.getProjectId().equals(user.getDeptId())).count();
if(cnt==0){ if(cnt==0){
where.setIsActive(0l); where.setIsActive(0l);
where.setProjectId(user.getDeptId()); where.setProjectId(user.getDeptId());
@ -689,11 +689,11 @@ public class SysUserServiceImpl implements ISysUserService
userExtService.updateSysUserExt(oldExt); userExtService.updateSysUserExt(oldExt);
} }
try { try {
if(Objects.equals(user.getUserType(),"99")){ if(Objects.equals(user.getUserType(),UserTypeEnums.XMRY.getCode())){
// 根据单位递归查询项目信息 // 根据单位递归查询项目信息
SysDept sysDept = deptMapper.selectDeptById(user.getDeptId()); SysDept sysDept = deptMapper.selectDeptById(user.getDeptId());
// 是项目单位时,将人员信息加入到花名册 // 是项目单位时,将人员信息加入到花名册
if(StringUtils.isNotEmpty(sysDept.getDeptType()) && Objects.equals(sysDept.getDeptType(),"4")){ if(StringUtils.isNotEmpty(sysDept.getDeptType()) && Objects.equals(sysDept.getDeptType(),SysDept.XMDW)){
Map<String, Object> data = packageSubDeptUsers(user,sysDept); Map<String, Object> data = packageSubDeptUsers(user,sysDept);
remoteProService.syspushSubDeptsUser(data, SecurityConstants.INNER); remoteProService.syspushSubDeptsUser(data, SecurityConstants.INNER);
} }

View File

@ -61,6 +61,15 @@ export function complete(data) {
}) })
} }
// 批量审批任务
export function batchComplete(data) {
return request({
url: '/flowable/task/batchComplete',
method: 'post',
data: data
})
}
// 驳回任务流程 // 驳回任务流程
export function reject(data) { export function reject(data) {
return request({ return request({

View File

@ -26,7 +26,7 @@
<view class="inspect_list_title"> <view class="inspect_list_title">
<view class="inspect_list_title_label inspect_list_title_width"> <view class="inspect_list_title_label inspect_list_title_width">
<view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view> <view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view>
<view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}{{item.commentResult}} <view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}
<text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text> <text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text>
<text wx:if="{{item.commentResult=='委派'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text> <text wx:if="{{item.commentResult=='委派'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
<text wx:if="{{item.commentResult=='转办'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text> <text wx:if="{{item.commentResult=='转办'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
@ -236,7 +236,7 @@
</van-col> </van-col>
</van-row> </van-row>
</view> </view>
<view class="inspect_overview_list" wx:if="{{options.category!='3' && options.category!='4' && options.category!='5'}}"> <view class="inspect_overview_list" wx:if="{{options.category!='3' && options.category!='4' && options.category!='5' && options.category!='8'}}">
<van-row> <van-row>
<van-col span="8"><text class="color_purple">单位委托书</text></van-col> <van-col span="8"><text class="color_purple">单位委托书</text></van-col>
<van-col span="16"> <van-col span="16">

View File

@ -26,7 +26,7 @@
<view class="inspect_list_title"> <view class="inspect_list_title">
<view class="inspect_list_title_label inspect_list_title_width"> <view class="inspect_list_title_label inspect_list_title_width">
<view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view> <view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view>
<view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}{{item.commentResult}} <view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}
<text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text> <text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text>
<text wx:if="{{item.commentResult=='委派'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text> <text wx:if="{{item.commentResult=='委派'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
<text wx:if="{{item.commentResult=='转办'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text> <text wx:if="{{item.commentResult=='转办'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
@ -236,7 +236,7 @@
</van-col> </van-col>
</van-row> </van-row>
</view> </view>
<view class="inspect_overview_list" wx:if="{{options.category!='3' && options.category!='4' && options.category!='5'}}"> <view class="inspect_overview_list" wx:if="{{options.category!='3' && options.category!='4' && options.category!='5' && options.category!='8'}}">
<van-row> <van-row>
<van-col span="8"><text class="color_purple">单位委托书</text></van-col> <van-col span="8"><text class="color_purple">单位委托书</text></van-col>
<van-col span="16"> <van-col span="16">

View File

@ -26,7 +26,7 @@
<view class="inspect_list_title"> <view class="inspect_list_title">
<view class="inspect_list_title_label inspect_list_title_width"> <view class="inspect_list_title_label inspect_list_title_width">
<view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view> <view class="inspect_list_title_number">{{(flowRecordList.length-index) < 9 ?'0'+(flowRecordList.length-index):(flowRecordList.length-index)}}</view>
<view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}{{item.commentResult}} <view class="module_title module_title_flex inspect_list_title_text">{{item.taskName}}
<text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text> <text wx:if="{{item.commentResult=='通过'}}" class="timeline_for_state_1 color_green">{{item.commentResult}}</text>
<text wx:if="{{item.commentResult=='委派'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text> <text wx:if="{{item.commentResult=='委派'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>
<text wx:if="{{item.commentResult=='转办'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text> <text wx:if="{{item.commentResult=='转办'}}" class="timeline_for_state_1 color_blue">{{item.commentResult}}</text>

View File

@ -26,7 +26,7 @@
<view class="inspect_list_title"> <view class="inspect_list_title">
<view class="inspect_list_title_label inspect_list_title_width"> <view class="inspect_list_title_label inspect_list_title_width">
<view class="inspect_list_title_number">{{index < 9 ?'0'+(index+1):(index+1)}}</view> <view class="inspect_list_title_number">{{index < 9 ?'0'+(index+1):(index+1)}}</view>
<view class="module_title_3 module_title_flex"> <view class="module_title module_title_flex">
<text wx:if="{{!item.endTime}}" class="color_purple">申请时间 {{item.createTime}}</text> <text wx:if="{{!item.endTime}}" class="color_purple">申请时间 {{item.createTime}}</text>
<text wx:if="{{item.endTime}}" class="color_purple">办结时间 {{item.endTime}}</text> <text wx:if="{{item.endTime}}" class="color_purple">办结时间 {{item.endTime}}</text>
</view> </view>

View File

@ -1,9 +1,11 @@
import config from '../../../config' import config from '../../../config'
import { import {
getToken getToken,
getUserInfo
} from '../../../utils/auth' } from '../../../utils/auth'
import { import {
quueryCount, quueryCount,
batchComplete,
myAwaitFlowTaskList, myAwaitFlowTaskList,
myFinishedFlowTaskList, myFinishedFlowTaskList,
} from '../../../api/flowable' } from '../../../api/flowable'
@ -24,6 +26,8 @@ Page({
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
checkedAll:false,
showChecked:false,
imgBaseUrl: config.baseImgUrl imgBaseUrl: config.baseImgUrl
}, },
@ -57,12 +61,18 @@ Page({
text: app.globalData.useProjectName, text: app.globalData.useProjectName,
} }
}); });
let userInfo = getUserInfo();
if(userInfo && userInfo.projectUserInfo && userInfo.projectUserInfo.subDeptType=="1"){
this.setData({
showChecked:true
});
}
this.getListData(); this.getListData();
this.getFlowableCount(); this.getFlowableCount();
} else { } else {
console.log("未查询到Token...{}...准备重新登录") console.log("未查询到Token...{}...准备重新登录")
wx.redirectTo({ wx.redirectTo({
url: '../login/login', url: '../../login/login',
}) })
} }
}, },
@ -178,6 +188,91 @@ Page({
} }
}, },
/**
* 选中节点
* @param {*} e
*/
selectItem: function(event){
let procInsId = event.currentTarget.dataset.set;
console.log("procInsId==>",procInsId)
let _listData = this.data.listData;
_listData.forEach(item =>{
if(procInsId==item.procInsId){
item.selected=!item.selected;
}
})
this.setData({
listData: _listData
});
},
/**
* 全选
*/
onCheckedAll(){
let _checked = !this.data.checkedAll;
let _listData = this.data.listData;
_listData.forEach(item =>{
item.selected=_checked;
});
this.setData({
listData: _listData,
checkedAll: _checked
});
},
/**
* 批量
* 审核通过
*/
onBatchPass(){
let taskIds = [];
let _listData = this.data.listData;
_listData.forEach(item =>{
if(item.selected){
taskIds.push(item.taskId);
}
});
if(taskIds.length==0){
app.toast("请选择要审批的数据项!","none",1500);
return false;
}
let that = this;
//弹出确认
wx.showModal({
title: '提示',
content: '是否确认批量审批通过?',
success: function (sm) {
if (sm.confirm) {
that.submitBatchPass();
}
}
})
},
/**
* 提交审批
*/
submitBatchPass(){
let taskIds = [];
let instanceIds = [];
let _listData = this.data.listData;
_listData.forEach(item =>{
if(item.selected){
taskIds.push(item.taskId);
instanceIds.push(item.procInsId);
}
});
let _data = {
'taskIds':taskIds,
'instanceIds':instanceIds
}
batchComplete(_data).then(res =>{
app.toast("批量审批通过成功!");
this.onLoad();
});
},
/** /**
* 办理时间计算 * 办理时间计算
* @param {*} val * @param {*} val

View File

@ -26,10 +26,13 @@
<view class="inspect_list_title"> <view class="inspect_list_title">
<view class="inspect_list_title_label inspect_list_title_width"> <view class="inspect_list_title_label inspect_list_title_width">
<view class="inspect_list_title_number">{{index < 9 ?'0'+(index+1):(index+1)}}</view> <view class="inspect_list_title_number">{{index < 9 ?'0'+(index+1):(index+1)}}</view>
<view class="module_title_3 module_title_flex"> <view class="module_title module_title_flex">
<text wx:if="{{!item.endTime}}" class="color_purple">申请时间 {{item.createTime}}</text> <text wx:if="{{!item.endTime}}" class="color_purple">申请时间 {{item.createTime}}</text>
<text wx:if="{{item.endTime}}" class="color_purple">办结时间 {{item.endTime}}</text> <text wx:if="{{item.endTime}}" class="color_purple">办结时间 {{item.endTime}}</text>
</view> </view>
<view wx:if="{{showChecked && activeState=='dsh'}}" class="myIcon" data-set="{{item.procInsId}}" catchtap="selectItem">
<image src="{{item.selected ? '/images/radio-selected.png' : '/images/radio.png'}}" />
</view>
</view> </view>
</view> </view>
<view class="inspect_list_info"> <view class="inspect_list_info">
@ -47,6 +50,10 @@
</view> </view>
</view> </view>
</view> </view>
<view wx:if="{{listData.length>0 && showChecked && activeState=='dsh'}}" class="problem_submit_to">
<view class="problem_submit_to_btn problem_submit_to_blue" bindtap="onCheckedAll">{{checkedAll?"全不选":"全选"}}</view>
<view class="problem_submit_to_btn problem_submit_to_save" bindtap="onBatchPass">审批通过</view>
</view>
<view wx:if="{{listData.length==0}}"> <view wx:if="{{listData.length==0}}">
<view style="padding-top: 70px;text-align: -webkit-center;"> <view style="padding-top: 70px;text-align: -webkit-center;">
<image src="https://szgcwx.jhncidg.com/staticFiles/nodata.png" style="width: 130px;height: 105px;"></image> <image src="https://szgcwx.jhncidg.com/staticFiles/nodata.png" style="width: 130px;height: 105px;"></image>

View File

@ -1 +1,10 @@
/* pages/project_flowable/subDeptsUsers/index.wxss */ /* pages/project_flowable/subDeptsUsers/index.wxss */
.myIcon{
position: fixed;
right: 25px;
}
.myIcon image {
width: 22px;
height: 22px;
background-color: #eeeeee;
}

View File

@ -32,6 +32,7 @@
</van-row> </van-row>
</view> </view>
</view> </view>
<van-tabbar wx:if="{{subDeptUserInfo.userPost!='3' && subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='5'}}" active="{{ active }}" bind:change="onChange" active-color="#ffffff" inactive-color="#7d95d6"> <van-tabbar wx:if="{{subDeptUserInfo.userPost!='3' && subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='5'}}" active="{{ active }}" bind:change="onChange" active-color="#ffffff" inactive-color="#7d95d6">
<van-tabbar-item bindtap="XMGK"> <van-tabbar-item bindtap="XMGK">
<image <image

View File

@ -187,7 +187,7 @@
<view class="inspect_info_list"> <view class="inspect_info_list">
<view class="markers inspect_info_title">紧急联系人电话</view> <view class="markers inspect_info_title">紧急联系人电话</view>
<view class="inspect_info_content"> <view class="inspect_info_content">
<input placeholder="请填写紧急联系人电话" placeholder-style="color:#6777aa;" bindinput="inputUrgentUserPhone" class="inspect_input_fill_in" model:value="{{form.contactPhone}}" maxlength="30" /> <input placeholder="请填写紧急联系人电话" placeholder-style="color:#6777aa;" bindinput="inputUrgentUserPhone" class="inspect_input_fill_in" model:value="{{form.contactPhone}}" maxlength="11" />
</view> </view>
</view> </view>
<view class="inspect_info_list"> <view class="inspect_info_list">
@ -305,7 +305,7 @@
<view class="inspect_info_list"> <view class="inspect_info_list">
<view class="markers inspect_info_title">紧急联系人电话</view> <view class="markers inspect_info_title">紧急联系人电话</view>
<view class="inspect_info_content"> <view class="inspect_info_content">
<input placeholder="请填写紧急联系人电话" placeholder-style="color:#6777aa;" bindinput="inputUrgentUserPhone" class="inspect_input_fill_in" model:value="{{form.contactPhone}}" maxlength="30" /> <input placeholder="请填写紧急联系人电话" placeholder-style="color:#6777aa;" bindinput="inputUrgentUserPhone" class="inspect_input_fill_in" model:value="{{form.contactPhone}}" maxlength="11" />
</view> </view>
</view> </view>
<view class="inspect_info_list"> <view class="inspect_info_list">
@ -448,7 +448,7 @@
<view class="inspect_info_list"> <view class="inspect_info_list">
<view class="markers inspect_info_title">紧急联系人电话</view> <view class="markers inspect_info_title">紧急联系人电话</view>
<view class="inspect_info_content"> <view class="inspect_info_content">
<input placeholder="请填写紧急联系人电话" placeholder-style="color:#6777aa;" bindinput="inputUrgentUserPhone" class="inspect_input_fill_in" maxlength="30" model:value="{{form.contactPhone}}" /> <input placeholder="请填写紧急联系人电话" placeholder-style="color:#6777aa;" bindinput="inputUrgentUserPhone" class="inspect_input_fill_in" maxlength="11" model:value="{{form.contactPhone}}" />
</view> </view>
</view> </view>
<view class="inspect_info_list" wx:if="{{userPost=='5'}}"> <view class="inspect_info_list" wx:if="{{userPost=='5'}}">
@ -700,7 +700,7 @@
<view class="inspect_list_info_details"> <view class="inspect_list_info_details">
<view class="inspect_list_info_data_2"> <view class="inspect_list_info_data_2">
<view class="inspect_list_info_data_prop bs">{{item.questionTitle}}</view> <view class="inspect_list_info_data_prop bs">{{item.questionTitle}}</view>
<view wx:if="{{item.questionType==1}}" class="question_body"> <view wx:if="{{item.questionType!=2}}" class="question_body">
<view wx:for="{{item.questionOption}}" wx:key="pancan" wx:for-item="pancan" wx:for-index="innerIndex" bindtap="toggleRadio" class="option" data-id="{{index+'_'+innerIndex}}"> <view wx:for="{{item.questionOption}}" wx:key="pancan" wx:for-item="pancan" wx:for-index="innerIndex" bindtap="toggleRadio" class="option" data-id="{{index+'_'+innerIndex}}">
<view class="icon"> <view class="icon">
<image src="{{pancan.selected ? '/images/radio-selected.png' : '/images/radio.png'}}" /> <image src="{{pancan.selected ? '/images/radio-selected.png' : '/images/radio.png'}}" />
@ -766,7 +766,7 @@
<view class="inspect_list_info_details"> <view class="inspect_list_info_details">
<view class="inspect_list_info_data_2"> <view class="inspect_list_info_data_2">
<view class="inspect_list_info_data_prop bs">{{item.questionTitle}}</view> <view class="inspect_list_info_data_prop bs">{{item.questionTitle}}</view>
<view wx:if="{{item.questionType==1}}" class="question_body"> <view wx:if="{{item.questionType!=2}}" class="question_body">
<view wx:for="{{item.questionOption}}" wx:key="pancan" wx:for-item="pancan" wx:for-index="innerIndex" bindtap="toggleRadio" class="option" data-id="{{index+'_'+innerIndex}}"> <view wx:for="{{item.questionOption}}" wx:key="pancan" wx:for-item="pancan" wx:for-index="innerIndex" bindtap="toggleRadio" class="option" data-id="{{index+'_'+innerIndex}}">
<view class="icon"> <view class="icon">
<image src="{{pancan.selected ? '/images/radio-selected.png' : '/images/radio.png'}}" /> <image src="{{pancan.selected ? '/images/radio-selected.png' : '/images/radio.png'}}" />

View File

@ -123,10 +123,10 @@ onMounted(() => {
modelerStore.setModules('selection', markRaw(modeler.get('selection'))); modelerStore.setModules('selection', markRaw(modeler.get('selection')));
modelerStore.setModules('canvas', markRaw(modeler.get('canvas'))); modelerStore.setModules('canvas', markRaw(modeler.get('canvas')));
// , // ,
if (StrUtil.isBlank(props.xml.value)) { if (StrUtil.isBlank(props.xml)) {
newDiagram() newDiagram()
} else { } else {
createNewDiagram(props.xml.value) createNewDiagram(props.xml)
} }
}) })

View File

@ -3,12 +3,12 @@
<!--流程的基础属性--> <!--流程的基础属性-->
<template v-if="bpmnFormData.$type === 'bpmn:Process'"> <template v-if="bpmnFormData.$type === 'bpmn:Process'">
<el-form-item label="项目单位" prop="proId"> <el-form-item label="项目单位" prop="proId">
<el-select v-model="bpmnFormData.proId" placeholder="请选择项目单位" @change="updateElementPro" style="width:100%"> <el-select v-model="bpmnFormData.proId" placeholder="请选择项目单位" @change="updateElementPro" disabled style="width:100%">
<el-option <el-option
v-for="opt in proOptions" v-for="opt in proOptions"
:key="opt.id" :key="opt.id+''"
:label="opt.projectName" :label="opt.projectName"
:value="opt.id" :value="opt.id+''"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -121,4 +121,7 @@ function initDatas(){
} }
initDatas(); initDatas();
console.log("bpmnFormData.proId==1>",bpmnFormData.value.proId);
bpmnFormData.value.proId = userStore.currentPrjId+'';
console.log("bpmnFormData.proId==2>",bpmnFormData.value.proId);
</script> </script>

View File

@ -384,7 +384,8 @@ const data = reactive({
isDel: null, isDel: null,
userWorkType: null, userWorkType: null,
workType: null, workType: null,
activeTags:"finished" activeTags:"finished",
searchValue:"pt1"
}, },
rules: { rules: {
subDeptId: [{ required: true, trigger: ['blur', 'change'], message: "请选择所属单位" }], subDeptId: [{ required: true, trigger: ['blur', 'change'], message: "请选择所属单位" }],