提交代码

dev_xd
姜玉琦 2025-02-09 23:21:26 +08:00
parent 049a04bcc7
commit acb89e5bc1
25 changed files with 333 additions and 132 deletions

View File

@ -41,6 +41,16 @@ public interface RemoteProService
@GetMapping("/proProjectInfoSubdeptsUsers/approveSubDeptsUser/{busKey}") @GetMapping("/proProjectInfoSubdeptsUsers/approveSubDeptsUser/{busKey}")
public R<AjaxResult> approveSubDeptsUser(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); public R<AjaxResult> approveSubDeptsUser(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*
* @param busKey
* @param source
* @return
*/
@GetMapping("/proProjectInfoSubdeptsUsers/subDeptsUserComSign/{busKey}")
public R<AjaxResult> subDeptsUserComSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/** /**
* *
* *

View File

@ -38,6 +38,12 @@ public class RemoteProFallbackFactory implements FallbackFactory<RemoteProServic
return R.fail("审批通过信息同步失败:" + throwable.getMessage()); return R.fail("审批通过信息同步失败:" + throwable.getMessage());
} }
@Override
public R<AjaxResult> subDeptsUserComSign(Long busKey, String source)
{
return R.fail("公司承诺书签名章失败:" + throwable.getMessage());
}
@Override @Override
public R<AjaxResult> subDeptsUserProSign(Long busKey, String source) public R<AjaxResult> subDeptsUserProSign(Long busKey, String source)
{ {

View File

@ -32,6 +32,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where> <where>
<if test="comId != null "> and bt.com_id = #{comId}</if> <if test="comId != null "> and bt.com_id = #{comId}</if>
<if test="projectId != null "> and bt.project_id = #{projectId}</if> <if test="projectId != null "> and bt.project_id = #{projectId}</if>
<if test="activeComId != null "> and bt.com_id = #{activeComId}</if>
<if test="activeProjectId != null "> and bt.project_id = #{activeProjectId}</if>
<if test="temName != null and temName != ''"> and bt.tem_name like concat('%', #{temName}, '%')</if> <if test="temName != null and temName != ''"> and bt.tem_name like concat('%', #{temName}, '%')</if>
<if test="temType != null and temType != ''"> and bt.tem_type = #{temType}</if> <if test="temType != null and temType != ''"> and bt.tem_type = #{temType}</if>
<if test="isDel != null "> and bt.is_del = #{isDel}</if> <if test="isDel != null "> and bt.is_del = #{isDel}</if>

View File

@ -80,7 +80,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' where u.del_flag = '0' and u.user_type= '00'
<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

@ -0,0 +1,41 @@
package com.yanzhu.flowable.listener;
import com.yanzhu.common.core.constant.SecurityConstants;
import com.yanzhu.common.core.text.Convert;
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.springframework.stereotype.Component;
/**
*
*
* Java
*
*
*
*
*
*
*
*
* @author JiangYuQi
* @date 2024/12/16
*/
@Slf4j
@Component
public class FlowComSignListener implements ExecutionListener {
@Lazy
@Autowired
private RemoteProService remoteProService;
@Override
public void notify(DelegateExecution execution) {
log.info("公司审批签名执行监听器:{}", execution.getProcessInstanceBusinessKey());
remoteProService.subDeptsUserComSign(Convert.toLong(execution.getProcessInstanceBusinessKey(),null), SecurityConstants.INNER);
}
}

View File

@ -160,13 +160,13 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController
} }
/** /**
* *
*/ */
@InnerAuth @InnerAuth
@GetMapping("/subDeptsUserGroSign/{busKey}") @GetMapping("/subDeptsUserComSign/{busKey}")
public R<AjaxResult> subDeptsUserGroSign(@PathVariable("busKey") Long busKey) public R<AjaxResult> subDeptsUserComSign(@PathVariable("busKey") Long busKey)
{ {
proProjectInfoSubdeptsUsersService.approveSubDeptsUserGroSign(busKey); proProjectInfoSubdeptsUsersService.approveSubDeptsUserComSign(busKey);
return R.ok(AjaxResult.success()); return R.ok(AjaxResult.success());
} }
@ -181,6 +181,17 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController
return R.ok(AjaxResult.success()); return R.ok(AjaxResult.success());
} }
/**
*
*/
@InnerAuth
@GetMapping("/subDeptsUserGroSign/{busKey}")
public R<AjaxResult> subDeptsUserGroSign(@PathVariable("busKey") Long busKey)
{
proProjectInfoSubdeptsUsersService.approveSubDeptsUserGroSign(busKey);
return R.ok(AjaxResult.success());
}
/** /**
* *
* @param ids * @param ids

View File

@ -6,7 +6,9 @@ package com.yanzhu.manage.enums;
public enum CraftPostEnums { public enum CraftPostEnums {
WTDL("1022", "委托代理人"), WTDL("1022", "委托代理人"),
XMJL("1023", "项目经理"); XMJL("1023", "项目经理"),
AQZY("1024", "安全专员"),
CLZY("1025", "材料专员");
private final String code; private final String code;
private final String info; private final String info;

View File

@ -5,7 +5,8 @@ package com.yanzhu.manage.enums;
*/ */
public enum DeptGroupEnums { public enum DeptGroupEnums {
MANAGE("DEFAULT", "管理班组"); MANAGE("DEFAULT", "管理班组"),
SPECIAL("SPECIAL", "特殊工种班组");
private final String code; private final String code;
private final String info; private final String info;

View File

@ -9,6 +9,7 @@ public enum UserPostEnums {
XMJL("2", "项目经理"), XMJL("2", "项目经理"),
BZZ("3", "班组长"), BZZ("3", "班组长"),
LWGR("4", "劳务工人"), LWGR("4", "劳务工人"),
TSGZ("5", "特殊工种"),
CLRY("6", "材料员"), CLRY("6", "材料员"),
AQRY("8", "安全员"), AQRY("8", "安全员"),
JSDWGL("66", "建设单位管理"), JSDWGL("66", "建设单位管理"),

View File

@ -124,6 +124,12 @@ public interface IProProjectInfoSubdeptsUsersService
*/ */
public void approveSubDeptsUserProSign(Long id); public void approveSubDeptsUserProSign(Long id);
/**
*
* @param id
*/
public void approveSubDeptsUserComSign(Long id);
/** /**
* *
* *

View File

@ -318,7 +318,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
// 班组信息处理 // 班组信息处理
if(Objects.nonNull(proProjectInfoSubdeptsUsers.getUserPost())){ if(Objects.nonNull(proProjectInfoSubdeptsUsers.getUserPost())){
if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.XMJL.getCode())){ if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.XMJL.getCode())){
//查询管理班组 // 查询管理班组
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup(); ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
query.setProjectId(parUsers.getProjectId()); query.setProjectId(parUsers.getProjectId());
query.setSubDeptId(parUsers.getSubDeptId()); query.setSubDeptId(parUsers.getSubDeptId());
@ -332,6 +332,39 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode()); proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode());
proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.XMJL.getCode()); proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.XMJL.getCode());
sysUser.setUserType(UserTypeEnums.FBXMJL.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())){ }else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.BZZ.getCode())){
// 班组长新增班组 // 班组长新增班组
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup(); ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
@ -364,7 +397,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
sysUser.setUserType(UserTypeEnums.FBBZZZ.getCode()); sysUser.setUserType(UserTypeEnums.FBBZZZ.getCode());
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.CLRY.getCode())){ }else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.CLRY.getCode())){
//查询管理班组 // 查询管理班组
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup(); ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
query.setProjectId(parUsers.getProjectId()); query.setProjectId(parUsers.getProjectId());
query.setSubDeptId(parUsers.getSubDeptId()); query.setSubDeptId(parUsers.getSubDeptId());
@ -375,10 +408,11 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
proProjectInfoSubdeptsUsers.setSubDeptGroup(groups.get(0).getId()); proProjectInfoSubdeptsUsers.setSubDeptGroup(groups.get(0).getId());
proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName()); proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName());
} }
proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode());
proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.CLZY.getCode());
sysUser.setUserType(UserTypeEnums.FBCLRY.getCode()); sysUser.setUserType(UserTypeEnums.FBCLRY.getCode());
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.AQRY.getCode())){ }else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.AQRY.getCode())){
//查询管理班组 // 查询管理班组
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup(); ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
query.setProjectId(parUsers.getProjectId()); query.setProjectId(parUsers.getProjectId());
query.setSubDeptId(parUsers.getSubDeptId()); query.setSubDeptId(parUsers.getSubDeptId());
@ -389,8 +423,22 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
proProjectInfoSubdeptsUsers.setSubDeptGroup(groups.get(0).getId()); proProjectInfoSubdeptsUsers.setSubDeptGroup(groups.get(0).getId());
proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName()); proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName());
} }
proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode());
proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.AQZY.getCode());
sysUser.setUserType(UserTypeEnums.FBAQRY.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())){ }else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.LWGR.getCode())){
// 劳务人员绑定班组信息 // 劳务人员绑定班组信息
proProjectInfoSubdeptsUsers.setSubDeptGroup(parUsers.getSubDeptGroup()); proProjectInfoSubdeptsUsers.setSubDeptGroup(parUsers.getSubDeptGroup());
@ -839,24 +887,6 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
} }
} }
// 审核文件签名
String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
BasSignet query = new BasSignet();
query.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
query.setUserId(SecurityUtils.getUserId());
List<BasSignet> signets = basSignetMapper.selectBasSignetList(query);
if(StringUtils.isEmpty(signets)){
throw new ServiceException("获取签名异常");
}
File pdfFile = org.apache.commons.io.FileUtils.getFile(filePath);
if (!pdfFile.getParentFile().exists()) {
boolean mkdirs = pdfFile.getParentFile().mkdirs();
log.info("创建目录...{}...{}",mkdirs,filePath);
}
String newFilePath = filePath.replace(".pdf","-c.pdf");
PdfImageSignetUtil.imageWaterMark(filePath, filePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.COMPANY_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath);
proProjectInfoSubdeptsUsers.setUseStatus(UseStateEnums.IN.getCode()); proProjectInfoSubdeptsUsers.setUseStatus(UseStateEnums.IN.getCode());
proProjectInfoSubdeptsUsers.setApproveStatus(ApproveStatus.exempt.getCode()); proProjectInfoSubdeptsUsers.setApproveStatus(ApproveStatus.exempt.getCode());
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
@ -872,22 +902,29 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
public void approveSubDeptsUserGroSign(Long id){ public void approveSubDeptsUserGroSign(Long id){
ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id); ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath); String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
BasSignet query = new BasSignet();
query.setProjectId(proProjectInfoSubdeptsUsers.getProjectId()); // 查询班组长签名
query.setUserId(SecurityUtils.getUserId()); if(proProjectInfoSubdeptsUsers.getSubDeptGroup()!=null){
List<BasSignet> signets = basSignetMapper.selectBasSignetList(query); ProProjectInfoSubdeptsGroup group = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupById(proProjectInfoSubdeptsUsers.getSubDeptGroup());
if(StringUtils.isEmpty(signets)){ if(group!=null && StringUtils.isNotEmpty(group.getGroupLeaderPhone())){
throw new ServiceException("获取签名异常"); 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)){
String newFilePath = filePath.replace(".pdf","-g.pdf");
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.GROUP_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile));
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
}
}
}
} }
File pdfFile = org.apache.commons.io.FileUtils.getFile(filePath);
if (!pdfFile.getParentFile().exists()) {
boolean mkdirs = pdfFile.getParentFile().mkdirs();
log.info("创建目录...{}...{}",mkdirs,filePath);
}
String newFilePath = filePath.replace(".pdf","-g.pdf");
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.GROUP_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath);
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
} }
/** /**
@ -898,22 +935,56 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
public void approveSubDeptsUserProSign(Long id){ public void approveSubDeptsUserProSign(Long id){
ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id); ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath); String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
BasSignet query = new BasSignet(); ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers();
query.setProjectId(proProjectInfoSubdeptsUsers.getProjectId()); userQuery.setWorkType(18L);
query.setUserId(SecurityUtils.getUserId()); userQuery.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
List<BasSignet> signets = basSignetMapper.selectBasSignetList(query); List<ProProjectInfoSubdeptsUsers> users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery);
if(StringUtils.isEmpty(signets)){ if(StringUtils.isNotEmpty(users)){
throw new ServiceException("获取签名异常"); 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)){
String newFilePath = filePath.replace(".pdf","-p.pdf");
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.PROJECT_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile));
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
}
} }
File pdfFile = org.apache.commons.io.FileUtils.getFile(filePath); }
if (!pdfFile.getParentFile().exists()) {
boolean mkdirs = pdfFile.getParentFile().mkdirs(); /**
log.info("创建目录...{}...{}",mkdirs,filePath); *
* @param id
*/
@Override
public void approveSubDeptsUserComSign(Long id){
// 审核文件签名
ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
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)){
String newFilePath = filePath.replace(".pdf","-c.pdf");
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.PROJECT_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile));
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
}
} }
String newFilePath = filePath.replace(".pdf","-p.pdf"); }
PdfImageSignetUtil.imageWaterMark(filePath, filePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.PROJECT_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath); public static void main(String[] args) {
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); 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());
} }
/** /**

View File

@ -127,26 +127,7 @@ public class PdfImageSignetUtil {
pdfReader = new PdfReader(srcPdfPath); pdfReader = new PdfReader(srcPdfPath);
FileOutputStream out = org.apache.commons.io.FileUtils.openOutputStream(org.apache.commons.io.FileUtils.getFile(newPdfPath)); FileOutputStream out = org.apache.commons.io.FileUtils.openOutputStream(org.apache.commons.io.FileUtils.getFile(newPdfPath));
pdfStamper = new PdfStamper(pdfReader, out); pdfStamper = new PdfStamper(pdfReader, out);
BufferedImage bufferedImage = ImageIO.read(org.apache.commons.io.FileUtils.getFile(imagePath)); Image qrcodeImage = Image.getInstance(imagePath);
// 这里裁剪图片可能报错,报错用原图
int[] array = bufferedImageToIntArray(bufferedImage,bufferedImage.getWidth(),bufferedImage.getHeight());
// blank是作为四周边距留白
int blank = 20;
boolean cutResult = false;
try {
// 图片裁剪
ImgUtil.cut(FileUtil.file(imagePath),
FileUtil.file(imagePath + ".v1.png"), new Rectangle(array[0]-blank,array[1]-blank,array[2]+blank*2, array[3]+blank*2));
cutResult = true;
}catch (Exception ex){
log.error("图片裁剪发生未知异常:" + ex);
}
// 图片压缩
// ImgUtil.scale(FileUtil.file(cutResult?(imagePath + ".v0.png"):imagePath),
// FileUtil.file(imagePath + ".v1.png"), (float) (60.0/bufferedImage.getWidth()));
// 图片旋转
ImgUtil.rotate(FileUtil.file(cutResult?(imagePath + ".v1.png"):imagePath),270,FileUtil.file(imagePath + ".v2.png"));
Image qrcodeImage = Image.getInstance(imagePath+".v2.png");
//设置图片宽高 //设置图片宽高
qrcodeImage.scaleToFit(qrcodeImage.getWidth()/20, qrcodeImage.getHeight()/20); qrcodeImage.scaleToFit(qrcodeImage.getWidth()/20, qrcodeImage.getHeight()/20);
for(int i=0;i<list.size();i++){ for(int i=0;i<list.size();i++){

View File

@ -1,6 +1,6 @@
<!--pages/login/login.wxml--> <!--pages/login/login.wxml-->
<view class="login_logo"> <view class="login_logo">
<image src="https://xiangguan.sxyanzhu.com/profile/xmgl/static/sys_logo.png"></image> <image wx:if="false" src="https://xiangguan.sxyanzhu.com/profile/xmgl/static/sys_logo.png"></image>
</view> </view>
<view class="login_title"> <view class="login_title">
<text>数字工程项目管理系统</text> <text>数字工程项目管理系统</text>

View File

@ -6,6 +6,7 @@ page {
.login_logo { .login_logo {
text-align: center; text-align: center;
padding: 50rpx 0rpx; padding: 50rpx 0rpx;
height: 120rpx;
} }
.login_logo image { .login_logo image {

View File

@ -70,7 +70,7 @@
<view class="module_title module_title_padding"> <view class="module_title module_title_padding">
<view>{{subDeptData.projectName}}</view> <view>{{subDeptData.projectName}}</view>
</view> </view>
<view class="inspect_info" wx:if="{{options.category=='1' || options.category=='2' || options.category=='3' || options.category=='4' || options.category=='6' || options.category=='8'}}"> <view class="inspect_info" wx:if="{{options.category=='1' || options.category=='2' || options.category=='3' || options.category=='4' || options.category=='5' || options.category=='6' || options.category=='8'}}">
<view class="inspect_overview_list"> <view class="inspect_overview_list">
<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>
@ -230,7 +230,7 @@
</van-col> </van-col>
</van-row> </van-row>
</view> </view>
<view class="inspect_overview_list" wx:if="{{options.category!='4'}}"> <view class="inspect_overview_list" wx:if="{{options.category!='3' && options.category!='4' && options.category!='5'}}">
<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">
@ -260,19 +260,19 @@
<van-col span="16">{{subDeptUserData.userInfos.contactPhone}}</van-col> <van-col span="16">{{subDeptUserData.userInfos.contactPhone}}</van-col>
</van-row> </van-row>
</view> </view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}"> <view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<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">{{subDeptUserData.userInfos.bankName}}</van-col> <van-col span="16">{{subDeptUserData.userInfos.bankName}}</van-col>
</van-row> </van-row>
</view> </view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}"> <view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<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">{{subDeptUserData.userInfos.bankOffice}}</van-col> <van-col span="16">{{subDeptUserData.userInfos.bankOffice}}</van-col>
</van-row> </van-row>
</view> </view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}"> <view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<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">{{subDeptUserData.userInfos.bankCardNo}}</van-col> <van-col span="16">{{subDeptUserData.userInfos.bankCardNo}}</van-col>

View File

@ -70,7 +70,7 @@
<view class="module_title module_title_padding"> <view class="module_title module_title_padding">
<view>{{subDeptData.projectName}}</view> <view>{{subDeptData.projectName}}</view>
</view> </view>
<view class="inspect_info" wx:if="{{options.category=='1' || options.category=='2' || options.category=='3' || options.category=='4' || options.category=='6' || options.category=='8'}}"> <view class="inspect_info" wx:if="{{options.category=='1' || options.category=='2' || options.category=='3' || options.category=='4' || options.category=='5' || options.category=='6' || options.category=='8'}}">
<view class="inspect_overview_list"> <view class="inspect_overview_list">
<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>
@ -230,7 +230,7 @@
</van-col> </van-col>
</van-row> </van-row>
</view> </view>
<view class="inspect_overview_list" wx:if="{{options.category!='4'}}"> <view class="inspect_overview_list" wx:if="{{options.category!='3' && options.category!='4' && options.category!='5'}}">
<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">
@ -260,19 +260,19 @@
<van-col span="16">{{subDeptUserData.userInfos.contactPhone}}</van-col> <van-col span="16">{{subDeptUserData.userInfos.contactPhone}}</van-col>
</van-row> </van-row>
</view> </view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}"> <view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<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">{{subDeptUserData.userInfos.bankName}}</van-col> <van-col span="16">{{subDeptUserData.userInfos.bankName}}</van-col>
</van-row> </van-row>
</view> </view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}"> <view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<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">{{subDeptUserData.userInfos.bankOffice}}</van-col> <van-col span="16">{{subDeptUserData.userInfos.bankOffice}}</van-col>
</van-row> </van-row>
</view> </view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}"> <view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<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">{{subDeptUserData.userInfos.bankCardNo}}</van-col> <van-col span="16">{{subDeptUserData.userInfos.bankCardNo}}</van-col>

View File

@ -356,7 +356,7 @@ Page({
subDeptUserInfo: res.data[0] subDeptUserInfo: res.data[0]
}); });
//劳务人员信息 //劳务人员信息
if ((app.globalData.subDeptUserData.subDeptType=='1' || app.globalData.subDeptUserData.subDeptType=='4' || app.globalData.subDeptUserData.subDeptType=='5') && app.globalData.subDeptUserData.userPost != '4' && app.globalData.subDeptUserData.userPost != '6' && app.globalData.subDeptUserData.userPost != '8') { if ((app.globalData.subDeptUserData.subDeptType=='1' || app.globalData.subDeptUserData.subDeptType=='4' || app.globalData.subDeptUserData.subDeptType=='5') && app.globalData.subDeptUserData.userPost != '4' && app.globalData.subDeptUserData.userPost != '5' && app.globalData.subDeptUserData.userPost != '6' && app.globalData.subDeptUserData.userPost != '8') {
//统计劳务人员信息 //统计劳务人员信息
this.getSubDeptsUsers(app.globalData.useProjectId); this.getSubDeptsUsers(app.globalData.useProjectId);
this.initSubDeptDaysCharts(app.globalData.useProjectId); this.initSubDeptDaysCharts(app.globalData.useProjectId);
@ -367,7 +367,7 @@ Page({
this.getSubDeptsAttendanceView(app.globalData.useProjectId); this.getSubDeptsAttendanceView(app.globalData.useProjectId);
} }
//人员出勤信息 //人员出勤信息
if (app.globalData.subDeptUserData.userPost == '4' || app.globalData.subDeptUserData.userPost == '6' || app.globalData.subDeptUserData.userPost == '8') { if (app.globalData.subDeptUserData.userPost == '4' || app.globalData.subDeptUserData.userPost == '5' || app.globalData.subDeptUserData.userPost == '6' || app.globalData.subDeptUserData.userPost == '8') {
//统计劳务人员信息 //统计劳务人员信息
this.getUsersAttendanceView(app.globalData.useProjectId); this.getUsersAttendanceView(app.globalData.useProjectId);
} }

View File

@ -143,7 +143,7 @@
</view> </view>
</view> </view>
</view> </view>
<view class="echarts_max bt30" wx:if="{{(subDeptUserInfo.subDeptType=='4' || subDeptUserInfo.subDeptType=='5') && subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='6' && subDeptUserInfo.userPost!='8'}}"> <view class="echarts_max bt30" wx:if="{{(subDeptUserInfo.subDeptType=='4' || subDeptUserInfo.subDeptType=='5') && subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='5' && subDeptUserInfo.userPost!='6' && subDeptUserInfo.userPost!='8'}}">
<view class="echarts_min"> <view class="echarts_min">
<view class="eharts_title module_title_flex"> <view class="eharts_title module_title_flex">
我的二维码 我的二维码
@ -177,7 +177,7 @@
</view> </view>
</view> </view>
<view class="echarts_max" wx:if="{{subDeptUserInfo.userPost=='4' || subDeptUserInfo.userPost=='6' || subDeptUserInfo.userPost=='8'}}"> <view class="echarts_max" wx:if="{{subDeptUserInfo.userPost=='4' || subDeptUserInfo.userPost=='5' || subDeptUserInfo.userPost=='6' || subDeptUserInfo.userPost=='8'}}">
<view class="echarts_min"> <view class="echarts_min">
<view class="eharts_title module_title_flex"> <view class="eharts_title module_title_flex">
最近出勤 最近出勤
@ -235,7 +235,7 @@
</view> </view>
<!-- 底部导航 --> <!-- 底部导航 -->
<van-tabbar wx:if="{{subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='6' && subDeptUserInfo.userPost!='8'}}" active="{{ active }}" bind:change="onChange" active-color="#ffffff" inactive-color="#7d95d6"> <van-tabbar wx:if="{{subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='5' && subDeptUserInfo.userPost!='6' && subDeptUserInfo.userPost!='8'}}" active="{{ active }}" bind:change="onChange" active-color="#ffffff" inactive-color="#7d95d6">
<van-tabbar-item> <van-tabbar-item>
<image slot="icon" src="/images/footer_5.png" mode="aspectFit" style="width:40rpx; height: 40rpx;" /> <image slot="icon" src="/images/footer_5.png" mode="aspectFit" style="width:40rpx; height: 40rpx;" />
<image slot="icon-active" src="/images/foot_5.png" mode="aspectFit" style="width:40rpx; height: 40rpx;" /> <image slot="icon-active" src="/images/foot_5.png" mode="aspectFit" style="width:40rpx; height: 40rpx;" />

View File

@ -33,7 +33,7 @@
</view> </view>
</view> </view>
<van-tabbar wx:if="{{subDeptUserInfo.userPost!='4'}}" 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
slot="icon" slot="icon"

View File

@ -164,6 +164,10 @@ Page({
"id": "3", "id": "3",
"text": "班组长" "text": "班组长"
}); });
_userPostList.push({
"id": "5",
"text": "特殊工种"
});
_userPostList.push({ _userPostList.push({
"id": "6", "id": "6",
"text": "材料员" "text": "材料员"
@ -204,26 +208,36 @@ Page({
getDictCache(signId) { getDictCache(signId) {
if (signId == '3') { if (signId == '3') {
// 初始化工种类型 // 初始化工种类型
findDictCache("pro_craft_type").then(res => { // findDictCache("pro_craft_type").then(res => {
// if (res.code == 200) {
// let craftTypeList = [];
// res.data.forEach(item => {
// if (item.dictValue != "3") {
// craftTypeList.push({
// "id": item.dictValue,
// "text": item.dictLabel
// });
// }
// })
// this.setData({
// craftTypeList
// });
// }
// })
// 初始化工种岗位
findDictCache("pro_craft_post").then(res => {
if (res.code == 200) { if (res.code == 200) {
let craftTypeList = []; let list = [];
res.data.forEach(item => { res.data.forEach(item => {
if (item.dictValue != "3") { if (item.cssClass == '1') {
craftTypeList.push({ list.push({
"id": item.dictValue, "id": item.dictValue,
"text": item.dictLabel "text": item.dictLabel
}); });
} }
})
this.setData({
craftTypeList
}); });
}
})
// 初始化工种岗位
findDictCache("pro_craft_post").then(res => {
if (res.code == 200) {
this.setData({ this.setData({
craftPostList:list,
craftPostAllOrginList: res.data craftPostAllOrginList: res.data
}); });
} }
@ -1110,8 +1124,41 @@ Page({
*/ */
onChageUserPost(e) { onChageUserPost(e) {
this.setData({ this.setData({
"form.userPost": e.detail.id userPost:e.detail.id,
"form.userPost": e.detail.id,
"form.craftPost": null
}) })
if(e.detail.id=='3'){
let craftPostList = [];
this.data.craftPostAllOrginList.forEach(item => {
if (item.cssClass == '1') {
craftPostList.push({
"id": item.dictValue,
"text": item.dictLabel
});
}
})
this.setData({
craftPostList,
"form.craftType": '1',
"form.craftPost": null
})
} else if(e.detail.id=='5'){
let craftPostList = [];
this.data.craftPostAllOrginList.forEach(item => {
if (item.cssClass == '2') {
craftPostList.push({
"id": item.dictValue,
"text": item.dictLabel
});
}
})
this.setData({
craftPostList,
"form.craftType": '2',
"form.craftPost": null
})
}
}, },
/** /**
@ -1546,11 +1593,11 @@ Page({
userPost userPost
} = this.data; } = this.data;
//数据效验 //数据效验
if (userPost == '3' || userPost == '6' || userPost == '8') { if (userPost == '3' || userPost == '5') {
if (!form.craftType) { // if (!form.craftType) {
app.toast("请选择工种类型!"); // app.toast("请选择工种类型!");
return false; // return false;
} // }
if (!form.craftPost) { if (!form.craftPost) {
app.toast("请选择工种岗位!"); app.toast("请选择工种岗位!");
return false; return false;

View File

@ -1,7 +1,7 @@
<!-- 游客一键登录 --> <!-- 游客一键登录 -->
<view wx:if="{{!userPhoneNumber}}" class="page"> <view wx:if="{{!userPhoneNumber}}" class="page">
<view class="login_logo"> <view class="login_logo">
<image src="https://xiangguan.sxyanzhu.com/profile/xmgl/static/sys_logo.png"></image> <image wx:if="{{false}}" src="https://xiangguan.sxyanzhu.com/profile/xmgl/static/sys_logo.png"></image>
</view> </view>
<view class="login_title"> <view class="login_title">
<text>数字工程项目管理系统</text> <text>数字工程项目管理系统</text>
@ -284,7 +284,7 @@
</view> </view>
</view> </view>
<view wx:if="{{userPost=='3' || userPost=='6' || userPost=='8'}}"> <view wx:if="{{userPost=='3' || userPost=='5' || userPost=='6' || userPost=='8'}}">
<view class="header_title"> <view class="header_title">
<view class="header_title_row"> <view class="header_title_row">
<view class="header_name">{{title}}</view> <view class="header_name">{{title}}</view>
@ -306,17 +306,17 @@
<voucher-select columns="{{userPostList}}" placeholder="请选择岗位级别" bindchange="onChageUserPost" selectValue="{{form.userPost}}"></voucher-select> <voucher-select columns="{{userPostList}}" placeholder="请选择岗位级别" bindchange="onChageUserPost" selectValue="{{form.userPost}}"></voucher-select>
</view> </view>
</view> </view>
<view class="inspect_info_list"> <view class="inspect_info_list" wx:if="{{ userPost=='3' || userPost=='5' }}">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">班组工种</view> <view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">岗位工种</view>
<view class="inspect_info_content"> <view class="inspect_info_content">
<van-row> <!-- <van-row>
<van-col span="8"> <van-col span="8">
<voucher-select columns="{{craftTypeList}}" bindchange="onChageCraftType" placeholder="请选择工种类型" selectValue="{{form.craftType}}"></voucher-select> <voucher-select columns="{{craftTypeList}}" bindchange="onChageCraftType" placeholder="请选择工种类型" selectValue="{{form.craftType}}"></voucher-select>
</van-col> </van-col>
<van-col span="16"> <van-col span="16"> -->
<voucher-select columns="{{craftPostList}}" bindchange="onChageCraftPost" placeholder="请选择工种岗位" selectValue="{{form.craftPost}}"></voucher-select> <voucher-select columns="{{craftPostList}}" bindchange="onChageCraftPost" placeholder="请选择工种岗位" selectValue="{{form.craftPost}}"></voucher-select>
</van-col> <!-- </van-col>
</van-row> </van-row> -->
</view> </view>
</view> </view>
<view class="inspect_info_list" wx:if="{{false}}"> <view class="inspect_info_list" wx:if="{{false}}">
@ -357,7 +357,7 @@
<file-uploader bindimages="fileUploadUserPicture" limit="{{limit}}" fileUrlArray="{{form.userPicture}}"></file-uploader> <file-uploader bindimages="fileUploadUserPicture" limit="{{limit}}" fileUrlArray="{{form.userPicture}}"></file-uploader>
</view> </view>
</view> </view>
<view class="inspect_info_list" wx:if="userPost=='6'"> <view class="inspect_info_list" wx:if="{{userPost=='6'}}">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">劳务单位委托书 <view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">劳务单位委托书
<text style="font-size: small; color: antiquewhite;">[需加盖劳务单位的公章委托书照片]</text> <text style="font-size: small; color: antiquewhite;">[需加盖劳务单位的公章委托书照片]</text>
</view> </view>
@ -407,6 +407,26 @@
<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="30" model:value="{{form.contactPhone}}" />
</view> </view>
</view> </view>
<view class="inspect_info_list" wx:if="{{userPost=='5'}}">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">开户银行名称</view>
<view class="inspect_info_content">
<input placeholder="请填写开户银行名称" placeholder-style="color:#6777aa;" bindinput="inputBankName" class="inspect_input_fill_in" maxlength="30" model:value="{{form.bankName}}" />
</view>
</view>
<view class="inspect_info_list" wx:if="{{userPost=='5'}}">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">开户银行网点
<text style="font-size: small; color: antiquewhite;">[开户银行地址]</text>
</view>
<view class="inspect_info_content">
<input placeholder="请填写开户银行网点" placeholder-style="color:#6777aa;" bindinput="inputBankOffice" class="inspect_input_fill_in" maxlength="30" model:value="{{form.bankOffice}}" />
</view>
</view>
<view class="inspect_info_list" wx:if="{{userPost=='5'}}">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">工资银行卡号</view>
<view class="inspect_info_content">
<input placeholder="请填写工资银行卡号" placeholder-style="color:#6777aa;" bindinput="inputBankCardNo" class="inspect_input_fill_in" maxlength="30" model:value="{{form.bankCardNo}}" />
</view>
</view>
<view class="inspect_info_list"> <view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">文化程度</view> <view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">文化程度</view>
<view class="inspect_info_content"> <view class="inspect_info_content">

View File

@ -7,6 +7,7 @@
.login_logo { .login_logo {
text-align: center; text-align: center;
padding: 50rpx 0rpx; padding: 50rpx 0rpx;
height: 120rpx;
} }
.login_logo image { .login_logo image {

View File

@ -11,7 +11,7 @@
{ {
"name": "pages/project_qr/index", "name": "pages/project_qr/index",
"pathName": "pages/project_qr/index", "pathName": "pages/project_qr/index",
"query": "QRPID=132&SIGID=4&PARID=40", "query": "QRPID=132&SIGID=1",
"launchMode": "default", "launchMode": "default",
"scene": null "scene": null
}, },

View File

@ -135,7 +135,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="人员信息" name="users" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4'"> <el-tab-pane label="人员信息" name="users" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4' || dataOptions.category=='5' || dataOptions.category=='6' || dataOptions.category=='8'">
<el-form label-width="100px" size="small" > <el-form label-width="100px" size="small" >
<el-form-item label="代理人身份证" v-if="dataOptions.category=='1'"> <el-form-item label="代理人身份证" v-if="dataOptions.category=='1'">
<ImagePreview :src="initData.userInfos.cardImgPos" :width="120" :height="70"/> <ImagePreview :src="initData.userInfos.cardImgPos" :width="120" :height="70"/>
@ -144,7 +144,7 @@
<el-form-item label="入场肖像近照" v-if="dataOptions.category=='1'"> <el-form-item label="入场肖像近照" v-if="dataOptions.category=='1'">
<ImagePreview :src="initData.userPicture" :width="120" :height="70"/> <ImagePreview :src="initData.userPicture" :width="120" :height="70"/>
</el-form-item> </el-form-item>
<el-form-item label="单位委托证明" v-if="dataOptions.category!='4'"> <el-form-item label="单位委托证明" v-if="dataOptions.category!='3' && dataOptions.category!='4' && dataOptions.category!='5' && dataOptions.category!='8'">
<ImagePreview :src="initData.subDeptPowerPath" :width="120" :height="70"/> <ImagePreview :src="initData.subDeptPowerPath" :width="120" :height="70"/>
</el-form-item> </el-form-item>
<el-form-item label="委托人姓名" v-if="dataOptions.category=='1'"> <el-form-item label="委托人姓名" v-if="dataOptions.category=='1'">
@ -478,7 +478,7 @@
/** 获取表单数据 */ /** 获取表单数据 */
const initFormValues = () => { const initFormValues = () => {
let category = parseInt(dataOptions.value.category); let category = parseInt(dataOptions.value.category);
if(category==1 || category==2 || category==3 || category==4){ if(category==1 || category==2 || category==3 || category==4 || category==5 || category==6 || category==8){
getProProjectInfoSubdeptsUsers(dataOptions.value.businessKey).then(res =>{ getProProjectInfoSubdeptsUsers(dataOptions.value.businessKey).then(res =>{
if(res.data.userInfos){ if(res.data.userInfos){
res.data.userInfos = JSON.parse(res.data.userInfos); res.data.userInfos = JSON.parse(res.data.userInfos);

View File

@ -135,7 +135,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="人员信息" name="users" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4'"> <el-tab-pane label="人员信息" name="users" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4' || dataOptions.category=='5' || dataOptions.category=='6' || dataOptions.category=='8'">
<el-form label-width="100px" size="small" > <el-form label-width="100px" size="small" >
<el-form-item label="代理人身份证" v-if="dataOptions.category=='1'"> <el-form-item label="代理人身份证" v-if="dataOptions.category=='1'">
<ImagePreview :src="initData.userInfos.cardImgPos" :width="120" :height="70"/> <ImagePreview :src="initData.userInfos.cardImgPos" :width="120" :height="70"/>
@ -144,7 +144,7 @@
<el-form-item label="入场肖像近照" v-if="dataOptions.category=='1'"> <el-form-item label="入场肖像近照" v-if="dataOptions.category=='1'">
<ImagePreview :src="initData.userPicture" :width="120" :height="70"/> <ImagePreview :src="initData.userPicture" :width="120" :height="70"/>
</el-form-item> </el-form-item>
<el-form-item label="单位委托证明" v-if="dataOptions.category!='4'"> <el-form-item label="单位委托证明" v-if="dataOptions.category!='3' && dataOptions.category!='4' && dataOptions.category!='5' && dataOptions.category!='8'">
<ImagePreview :src="initData.subDeptPowerPath" :width="120" :height="70"/> <ImagePreview :src="initData.subDeptPowerPath" :width="120" :height="70"/>
</el-form-item> </el-form-item>
<el-form-item label="委托人姓名" v-if="dataOptions.category=='1'"> <el-form-item label="委托人姓名" v-if="dataOptions.category=='1'">
@ -207,7 +207,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="视频培训" name="video" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4'"> <el-tab-pane label="视频培训" name="video" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4' || dataOptions.category=='5' || dataOptions.category=='46' || dataOptions.category=='8'">
<el-table :data="userEduVideoList"> <el-table :data="userEduVideoList">
<el-table-column label="播放时间" align="center" prop="playDates" width="180"> <el-table-column label="播放时间" align="center" prop="playDates" width="180">
<template #default="scope"> <template #default="scope">
@ -224,7 +224,7 @@
<el-table-column label="培训级别" align="center" prop="trainLevelName"/> <el-table-column label="培训级别" align="center" prop="trainLevelName"/>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="考试情况" name="exams" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4'"> <el-tab-pane label="考试情况" name="exams" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4' || dataOptions.category=='5' || dataOptions.category=='6' || dataOptions.category=='8'">
<el-row class="task_panel"> <el-row class="task_panel">
<el-col :span="6"> <el-col :span="6">
<el-statistic class="statistic_div"> <el-statistic class="statistic_div">
@ -621,7 +621,7 @@
/** 获取表单数据 */ /** 获取表单数据 */
const initFormValues = () => { const initFormValues = () => {
let category = parseInt(dataOptions.value.category); let category = parseInt(dataOptions.value.category);
if(category==1 || category==2 || category==3 || category==4){ if(category==1 || category==2 || category==3 || category==4 || category==5 || category==6 || category==8){
getProProjectInfoSubdeptsUsers(dataOptions.value.businessKey).then(res =>{ getProProjectInfoSubdeptsUsers(dataOptions.value.businessKey).then(res =>{
if(res.data.userInfos){ if(res.data.userInfos){
res.data.userInfos = JSON.parse(res.data.userInfos); res.data.userInfos = JSON.parse(res.data.userInfos);